USAGE NOTES FOR SOUNDSHAPER 6
==============================
 Robert Fraser, Ensemble Software and CDP 2023.
Content is liable to change as Soundshaper is updated.
Portions of this text have been adapted from CDP Help, with permission.
You are welcome to adapt the text for your own (non-commercial) use:
 The usage for a process begins with an ID no. in square brackets
  and ends with the next ID no. Avoid using lines beginning with a square-bracket '[' ! 
 Comment lines beginning with // are not displayed.
 If you translate any of the text, please share it with us, to help other users.
------------------------------------------------------------------------------------------------------
//SOUNDFILE PROCESSES (2)
[201] RingMod
RINGMOD (CDP: modify radical 5) and CROSSMOD (CDP: modify radical 6)(no parameters)

Ring Modulation multiplies two signals together, producing 'sidebands' consisting of the sum and difference of each pair of their constituent frequencies. Here, the modulating frequency (or 'modulator') is a single frequency (a simple sine-tone), so in effect the source sound (the 'carrier') is shifted upwards and downwards in frequency by the modulator.  The result is usually a tone-complex of a metallic, or inharmonic, quality. The technique has rich possibilities for creating non-harmonic sounds, if handled carefully.

PARAMETER
MOD_FREQ: Modulation Frequency. Soundshaper splits this into two ranges - low or high:
  Low range  ('Mode' 1):  0.1-1-150 Hz.  T-V
  High range ('Mode' 2):  100-1000-22050 Hz. T-V
As there is only really one parameter, the T-V file can use the whole range (0.1-22050 Hz.)

NOTES
The big problem with RINGMOD is that as the pitch of the source changes, the output frequencies also change, apparently unpredictably (though in theory they are highly predictable). To get a consistent timbre, the modulator must also change pitch in a related way. 

With RINGMOD (depending on the source content), this can sometimes be done by transposing the source spectrally (TRANSPOSE) and extracting its pitch contour using PITCH EXTRACT  -- to a breakpoint file, then using this as the basis of the MOD_FREQ datafile. (You could adjust all the frequency values together in GraphEdit.)  If you stick to harmonic relationships (ratios like 2:1 octave), the output will also be harmonic, but if you use inharmonic ones (or a less harmonic interval like the tritone), the output will be inharmonic ('bell-like'). But at least it should be a consistent sound.

The sister program to RINGMOD is CROSSMOD, which has no parameters. Here the modulator is a second input file: that is best kept as simple as possible (not rich in partials), to avoid an over-complex/ noisy output -- unless that is what you want.

[2012] Shred
SHRED (CDP: modify radical 2): cut sound into random segments

SHRED randomly cuts and splices repeatedly, within the existing duration. The sound is cut into random segments, determined by CHUNK length (itself randomized by SCATTER) and the number of REPEATS, but retains its original duration. The segments are re-ordered by a permutation process. As the number of REPEATS is increased, the soundfile gets more and more jumbled, literally 'reducing it to shreds'.  

CHUNK (the segment length) must be no more than half of the soundfile length; CHUNK x SCATTER must be less than the CDP sound buffer (default 1MB: if necessary, increase "Memory Size" on the Settings page).

PARAMETERS
REPEATS: Number of repeats of the shredding process. 
  Range: 1-10000. (Soundshaper's maximum of 1000 can be exceeded.)
CHUNK: Average length of chunks to cut and permutate.
  Range: 0.017415 to maximum of  50% of file-length.
(SCATTER): Randomise cuts 
  Range: 0 to 8; CHUNK x SCATTER must be < file-length)

NOTES
As the output length is the same as the input, it seems that REPEATS has priority over CHUNK length (For example, with a 4" file, CHUNK 0.5 and REPEATS 200, the segment length was reduced, not the no. of repeats.)

[2013] Scrub
SCRUB (CDP: modify radical 3): emulate tape moved by hand across tape-head

SCRUB plays forwards and backwards as if hand-winding tape over a tape head. In the days of tape recording, it was customary to move the tape back and forth over the playback head to find the start position of a signal. This process simulates the sound made.  

The limits of pitch change are set by the amount of transposition DOWN and UP; you also set an overall DURATION for the output and a START and END time (in the Infile) for the effect.

DURATION: Length of outfile required 
  Range: 0.000023 to 32767 secs.
DOWN: Lowest downward tranposition. 
  Range: -96 to +96 semitones.
UP: Highest upward tranposition. 
  Range: -96 to +96 semitones.
START: Time to start the effect (in the Input file). 
  Range: 0 to file-length seconds
END: Time to end the effect. 
  Range: 0.000023 to file-length seconds.

[2014] Degrade
DEGRADE (CDP: modify radical 4): lose resolution
DEGRADE simulates degrading of the signal by lowering the sample rate or the bit-resolution.
The simulated bit resolution is set by BITS, while a lower sample-rate is simulated by SR_DIVIDE which divides the current one by a power of 2.  

PARAMETERS
BITS: Bit resolution to be simulated (the actual output resolution is not affected)
  Range: 1-16; default 16
SR DIVIDE: Sample-rate divider.
  Range: 1 to 256, rounded to nearest power of 2 as necessary. 

NOTES
DEGRADE can reduce speech to not much more than the rhythm and pitch contour, especially in conjunction with BLUR. 

[2015] Shudder
SHUDDER (CDP: modify shudder): impose tremulations

Shudder, like Tremolo and Pulsed, imposes a cyclic amplitude variation on a sound. Shudder allows for random variation of the oscillation, in speed (SCATTER), amplitude (MIN DEPTH to MAX-DEPTH), duration (MIN WIDTH to MAX WIDTH) and stereo space (SPREAD). Both Infile and Outfile are stereo.

PARAMETERS
START: Time in Infile when shudder begins
  Range: 0- filelength secs.
RATE: Average frequency of the shudder - how many per second 
  Range 0.1 to 100	T-V
SCATTER: Randomise shudder events in time 
  Range 0 to 1; default 0  T-V
SPREAD: Randomise shudder events in stereo space; 1=full L-R spread.  
  Range 0 to 1; default 0  T-V
MIN DEPTH: Amplitude of shudders - each gets amplitude between MIN and MAX Depth
  Range: 0-1  T-V
MAX DEPTH: Amplitude of shudders - each gets amplitude between MIN and MAX Depth
  Range: 0-1  T-V
MIN WIDTH: Duration of shudders - each gets length between MIN and MAX Width
  Range: 0-1  T-V
MAX WIDTH: Duration of shudders: each gets length between MIN and MAX Width
  Range: 0-1  T-V

NOTES
Shudder can be used as a conventional tremolo, but the extensive capacity for random variation and time-variation greatly widens the range of possibilities. 

[2017] MchShred
MchShred (CDP: mchshred)

MchShred is a multi-channel version of SHRED, with added OUTCHANS parameter (Mode 1). 
The sound is cut into random segments, determined by CHUNK length (varied by SCATTER) and the number of REPEATS, but retains its original duration. The segments are re-ordered by a permutation process. As the number of REPEATS increases, it gets more and more jumbled, literally 'reducing it to shreds'.

For MchShred, the source may either be mono (Mode 1) and the output is placed randomly across the desired number of output channels; or it may be multi-channel (> 2 chans?), in which case the program scatters the output across the available channels. 

NOTE: For Mode 1 the source must be MONO (use S-M as required); Soundshaper's "Process Stereo" mechanism is not available for this process.

MODES
1 Shred Mono: shred mono infile to a multi-channel output.
2 Shred Multi-chan: shred multi-channel infile placing chunks randomly in multi-channel space. 

PARAMETERS
REPEATS: Number of repeats of the shredding process. 
  Range: 1-10000. (Soundshaper's maximum of 1000 can be exceeded.)
CHUNK: Average length of chunks to cut and permutate.
  Range: 0.017415 to maximum of  50% of file-length.
(SCATTER): Randomise cuts 
  Range: 0 to 8; CHUNK x SCATTER must be < file-length)
OUTCHANS (Mode 1 mono to m-ch only): number of output chans (2-16).

NOTES
Usage is as for SHRED, with the addition of multi-channel (input and) output. One of the hidden bonuses of the MCH programs is that you can specify more channels than you want, split these into separate files (cells) and process these independently. For example: 
Srce > MchShred (4 chans) > Split > Pan (Ch1: -1, Ch2: -0.35, Ch3: +0.35, Ch4: 1.0) > Mixmany
This splits the original into random chunks spread across stereo space. 

[206]  Cut
CUT (CDP: sfedit cut): cut out and keep segment

CUT extracts a segment as a separate soundfile. (For the opposite function, cut and discard, see EXCISE.) The START and END times are in seconds (Mode 1) or samples (Mode 2), which can be got from the CDP viewer VIEWSF. The latter is useful for extracting segments suitable for a wavetable of an exact size, e.g. for use in CSOUND. Seconds can be specified to 6 decimal places.

Soundshaper's CUT button operates CUT between the two markers shown. (This is also for  processing and future pasting back into the cut file or another file.) It is not necessary to check the Markers checkbox.
 
MODES
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

PARAMETERS
START: start time of segment. 
  Range: SPLICE to file-length; Mode 1: secs
         Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
END: end-time of segment.
   Range: 0 to filelength-SPLICE; Mode 1: secs.
          Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
(SPLICE): Length of splice slope 
   Range 0-5000 ms; default=15

[2062] PACKET  
PACKET (CDP: packet): isolate or generate a sound packet
 
PACKET outputs one or more short enveloped sound grains called "packets", suitable for use in Texture programs or Grain. The packet(s) is/are taken from the input soundfile, being either "found" by zero-crossings (Mode 1) or "forced": extracted at the stated time(s) (Mode 2).  The number of outfiles is set by the number of times in Parameter 1 (TIMES), if this is a datafile. 

MODES
 1 Find packet: signal minima define edges of wave-packet
 2 Create packet: force creation of packet at specified time

PARAMETERS
TIME(S): Time or textfile of times at which packet is extracted/created.
  No. of outfiles = no. of times in datafile (if used).
  Datafile (if used): one time on each line 
  Range: 0 to file-length secs  
DUR: minimum duration of packet (Mode1);  duration of packet (Mode2)
  Range: 2 to <1/2 file-length msecs
NARROWING (>1) or broadening (<1) of packet envelope
  Range: 0-1000 
CENTRING of envelope peak: 0  peak at centre; -1 peak at start; 1 peak at end.
 Range: -1 to 0 to +1

OPTIONS
 Normalise: normalise packet level.
 Force levels: packet max/min forced up/down to packet contour. (Default: packet envelope imposed on signal.)
 Trim silence: trim leading or trailing silence.

NOTES
Sound packets resemble the grains used for FOF vocal synthesis, which are overlapped at the key resonance frequencies of vowels.


[207]  Cutend
CUTEND (CDP: sfedit cutend): retain the end portion of a soundfile

CUTEND is as CUT but cuts the end of the sound. You can get the same effect by setting END in CUT to the end of the sound.

MODES - as for CUT
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

PARAMETERS
LENGTH: Portion to extract - length from end-of-file 
  Range 0- filelength-SPLICE Mode 1: secs.
          Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
(SPLICE): Length of splice slope 
   Range 0-5000 ms; default=15

[208]  Zerocut
ZEROCUT (CDP: sfedit zcut): extract segment at zero-crossings
As CUT, but the segment is extracted at the nearest zero-crossings. This may be important to making the cut as glitch-free as possible, e.g. for looping. 
Note: there is no Splice parameter.
Marker times are used if the markers checkbox is checked and the times are suitable.

MODES - as for CUT
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

PARAMETERS
START: approximate start time in secs or samples/sample-groups 
END: approximate end time in secs or samples/sample-groups 

[2081] Zerocuts
ZEROCUTS (CDP: zcuts): make multiple cuts (MULTI-OUTS)

ZEROCUTS extracts multiple cuts to separate files, which may optionally be placed on the Patchgrid. Cuts are made at zero crossings, as in ZEROCUT, using a timesfile (list of cut start and end times). This is a MONO-only process which cannot be performed on a stereo or multi-channel file.

A series of Markers can be saved to a basic timesfile which may then be edited for use (see Markers menu). 

MODES
1 Times (secs.: Start and End times given in seconds
2 Samples: Start and End times given in samples
 
PARAMETERS
TIMESFILE: datafile  - List of cuts, in from - to pairs (ascending order)
  Range: 0 to filelength secs Mode 1 /samples Mode 2  

[209]  Excise
EXCISE (CDP: sfedit excise): discard portion of sound

EXCISE is the opposite of CUT: the segment chosen is discarded and the gap is closed.
Marker times are used if the markers checkbox is checked and the times are suitable.

MODES - as for CUT
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

PARAMETERS
START: start time of segment. 
  Range: SPLICE to file-length; Mode 1: secs
         Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
END: end-time of segment.
   Range: 0 to filelength-SPLICE; Mode 1: secs.
          Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
(SPLICE): Length of splice slope 
   Range 0-5000 ms; default=15

[2091] Multicut
MULTICUT (CDP: sfedit cutmany): extract multiple segments (MULTI-OUTS)

MULTICUT extracts multiple cuts to separate files, which may optionally be placed on the Patchgrid. Cuts are made at the times given in the timesfile (list of cut start and end times). Unlike ZEROCUTS, this process can have a stereo or multi-channel Infile.

A series of Markers can be saved to a basic timesfile which may then be edited for use (see Markers menu).

MODES - as for CUT
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

PARAMETERS
TIMESFILE: datafile  - List of cuts, in from - to pairs (ascending order)
  Range: 0 to filelength secs Mode 1 
        Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
(SPLICE): Length of splice slope 
   Range 0-5000 ms; default=15

[2092] Envcuts
ENVCUTS extracts multiple segments of a specified length to separate mono files, each with a decay at the end. The decay is useful for creating enveloped segments that do not end abruptly. An optional parameter LIMIT, sets a gate level above which the segment must rise to be accepted -- 70 (=-70dB) is a good value. The attack length is set ATTACK and the decay shape by EXP. 

In Mode 1 - adjacent - segments are consecutive. In Mode 2, they are separated by step: each segment begins TIMESTEP seconds after the last one begins. (A 7.5" musical phrase chopped into 1.5" segments with 0.5" timestep produced 13 segments.) 

The input file is natively mono, but Soundshaper can handle stereo and multichannel input. 

Soundshaper places outputs on or off the grid, as you specify. If on the grid, outputs are named from the current cell in columns (e.g. ~A_1.wav, ~B_1.wav etc.)
Mode 2 outputs may spill outside the patchgrid, if the step is small (the number being roughly filelength/step). The CDP off-grid naming is <outname>0.wav, <outname>1.wav, etc.

MODES
1. Segments are adjacent
2. Segments separated by step

PARAMETERS
ENVLEN: Length of segment required. This setting can cause the last portion of the input to be omitted.
  Range: 0 to filelength secs. 
STEP (Mode 2): Time separating the start of a segment from the start of the previous segment
  Range: 0 to filelength secs. 
ATTACK: The segment's attack length
  Range: 0-500 mS; must be &lt; than half envelope duration
EXP: the decay shape (1 is linear, <1 is shorter; >1 is longer)
  Range: 0.02 to 50
(LIMIT): the minimum level to accept
  Range: 0-96 dB (values are negative: 70 = -70dB)

NOTES
ENVCUTS is closely related to DISTCUTS, which cuts segments in groups of wavesets (according to zero-crossings), also with a falling envelope.
This process may have uses in creating segments for TEXTURE, or for other creative mixes derived from the same material.


[210]  MultiExcise
MULTIEXCISE (CDP: sfedit excises): discard multiple segments

MultiExcise makes a series of cuts which are discarded as in Excise.
A series of Markers can be saved to a basic timesfile which may then be edited for use (see Markers menu).

MODES - as for CUT
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

PARAMETERS
TIMESFILE: datafile  - List of portions to discard, in from - to pairs (ascending order)
  Range: 0 to filelength secs Mode 1 
        Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
(SPLICE): Length of splice slope 
   Range 0-5000 ms; default=15

[2101] Noisecut
NOISECUT (CDP: sfedit noisecut): replace noise in MONO soundfile with silence

Noisecut aims to replace noise with silence, particularly in speech sounds. 
In a test of normal speech, it claimed the whole file was noise. It has been put in Soundshaper's XTRA menu for those who wish to experiment with it.

PARAMETERS
SPLICE: length of splice slope
  Range: 0-50 ms
FREQ: frequency above which to remove noise
  Full range: 5-22050, default 6000
MAXNOISE: maximum duration of any unpitched segments retained
  Range: 1000-22050 ms
MINTONE: minimum duration of any pitched segments retained
  Range: 0-50 ms


[2102] Syllables
SYLLABLES (CDP: sfedit syllables): extract syllabic segments 
 
SYLLABLES aims to extract the syllables in speech, which tend to overlap slightly. The process is not "intelligent": it uses a timesfile of start and end times for each syllable, which you would need to get from a sound editor. Unfortunately, by the time you have found each segment in the editor, you might as well cut it there and then, making the function redundant. it has been put in Soundshaper's XTRA menu for those who wish to experiment with it.

MODES - as for CUT
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

PARAMETERS
CUTTIMES: text file containing the start end time pairs for each syllable to be cut
DOVETAIL: the time in milliseconds to allow for syllable overlap. 
  Range: 1 to 20 ms
SPLICELEN: the duration of the splice window 
  Range: in milliseconds; cannot be shorter than the gap between any two times in the timesfile.

OPTION: forces the process to cut pairs of syllables.

[2103] CANTOR
CANTOR (CDP: cantor): cut holes in the manner of a Cantor Set (MULTI-OUTS)

CANTOR cuts holes in a sound - a "hole" being a reduction in level (see INFO: Findhole). Initially, this is in the central third of the input sound; then in the central 3rd of the remaining segments, and so on. The output is a series of sounds (multiple-outputs) with more and more holes cut. The effect is quite like tremolo, but perhaps less regular and predictable.

In Mode 1, the hole is set as a proportion of the current segment time (HOLESZE), whereas in Mode 2 it is a fixed length (HOLEDUR).  Mode 3 superimposes tremolo envelopes.   In Modes 1 & 2, HOLEDIG sets the depth of the hole (where 1 is maximum), while in Mode 3 it is set as a minimum level (HOLELEV).  DEPTH_TRIG (Modes 1 & 2) is not clear, but suggests that this minimum level will trigger when (?) the next hole is cut.

THe maximum total duration (of all the files or just one??*) is set by MAXDUR*. There are three more parameters, for Mode 3 alone: how many repeats to make before the full depth is reached (REPEATS), the number of vibrato layers used (LAYERS) and a layer reduction (LAYERDEC):  the depth of next vibrato in relation to the previous one. (...none of these very clear - R.F.)

MODES
 1 Percentage hole: percentage of current segment-time taken up by hole
 2 Fixed length hole: fixed duration of holes
 3 Tremolo: use superimposed vibrato envelopes

PARAMETERS
HOLESIZE (Mode 1): Proportion of current segment-time
  Range: 0-1
HOLEDUR (Mode 2): Fixed duration of holes (secs)
  Range: 0- file-length secs.
HOLELEV(Mode 3): Level of signal at base of holes.
  Range: 0-1
HOLEDIG (Modes 1+2): Depth of each cut as hole is gradually created.
  Range: 0-1
DEPTH_TRIG: Level-depth of hole triggering next hole-cutting.
  Range: 0-1
REPEATS: How many repeats before full-depth reached.
  Range: 2-20
LAYERS: Number of vibrato layers used.
  Range: 1-100
LAYERDEC: Depth of next vibrato in relation to previous
  Range: 0.01-1
SPLICE: Splice length. 
  Range: 1-50 msecs
MAXDUR: Maximum total duration of output sound (secs)
  Range: 2 x filelength to 32767 (secs; Soundshaper's maximum may be exceeded).

OPTION
 Extend sound beyond splice-length limits.  (?)

NOTES
* What effect does MAXDUR have? All the outfiles are the same length (as the original). (Changing MAXDUR from c. 2 x Infile-length to 10 times this value made no difference.)
 Also query about flag -e (Extend Option): "Extend sound beyond splicelength limits". Not sure what this 
means.


[211]  Paste
PASTE (CDP: sfedit insert): insert Infile 2 into Infile 1

PASTE inserts one soundfile into another at a specified time (START) in the paste-file, either  overwriting or spreading the original. The time can be given in seconds or samples/grouped samples. The Marker "FROM" time is used if the markers checkbox is checked and the time is suitable. Overwrite does not of course overwrite the original file -- all CDP processing is non-destructive. Also, the original file-length is unaffected; if the overlap would be longer than the original file-length, the paste is refused and produces a CDP Error.

EDIT AT MARKERS
For PASTE, the input file is the one into which the second sound is inserted, and Infile 2 is the sound to insert. For some purposes, this is the wrong way round -- if you have processed a cut portion, you then may want to insert it into another file. 

If you make the cut using the CUT button, Soundshaper stores and displays the cut-file's filename as a possible future paste-file. To perform an overwrite paste at the FROM marker, click the PASTE button (or SHIFT+CTRL +). To paste into a different file, click on the paste-file's cell and then click ALT+V (or select it via the menu Markers > Pastefile Current/Other file.  

MODES
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

START: place insertion at this time (in seconds/ samples/sample-groups)
  Range: 0 to filelength secs Mode 1 
        Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
(SPLICE): Length of splice slope 
   Range 0-5000 ms; default=15
(LEVEL): gain multiplier on inserted file. 
  Range: 0.001 to 100 Full range: 0.000002 to 128 Default 1.0 - no change

OPTION: 
 Overwrite original: Overwrite original with inserted sound (default: spread original apart)

[2112] Overwrite
OVERWRITE (CDP: sfedit replace): insert 2nd sound, replacing part of 1st

Like PASTE, OVERWRITE inserts Infile 2 into Infile 1, but here the second sound "overwrites" a portion of the first. (In practice, a new soundfile is created.) There is already an option in PASTE for doing this and it seems to give more reliable results. In Soundshaper, Marker times are used if the markers checkbox is checked and the times are suitable.

NB The segment to be overwritten (START - END) must not be > than the length of the 2nd sound to be inserted.

MODES
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

PARAMETERS
START: start insertion at this time
  Range: 0 to file-length (secs)
END: end time of the segment to be replaced
  Range: >0 to file-length (secs) and >START
  Also: Start to End must be <=Infile2
(SPLICE): Length of splice slope 
  Range: 0-500 ms Full range: 0-5000 ms; recommend 0
(LEVEL): Gain multiplier on inserted file 
  Range: 0.001 to 100 Full range: 0.000002 to 128 Default: 1.0 - no change


[212]  InSil
INSIL (CDP: sfedit insil): insert silence into a sound

InSil inserts silence (of length DURATION) into the file at a specified point (START) up to a maximum of the original file-length. 

MODES
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

PARAMETERS
START: place insertion at this time (in seconds/ samples/sample-groups)
  Range: 0 to filelength secs Mode 1 
        Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
DURATION: length of inserted silence (in seconds/ samples/sample-groups)
  Range: 0 to filelength secs Mode 1 
        Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
(SPLICE): Length of splice slope 
   Range 0-5000 ms; default=15 

NOTES
In practice, this function does not add the correct amount of silence to the end of a sound: use ENDSIL for this instead.  It can add silence to the start of a sound: with START = 0 and SPLICE = 0. However, there is another CDP function that also does this: PRESIL (CDP: prefix silence).

[2121] PreSil
PRESIL (CDP: prefix sil): add silence to start of sound

PreSil prefixes silence to the start of the soundfile. This is a useful pre-mix facility, delaying the sound's onset by a set amount before mixing it with other sounds, e.g. using MIXMANY. For this purpose, PreSil is built into the Soundshaper composite function PreMix (q.v.).

PARAMETERS
DURATION: Length of time to prefix.
  Range: 0 to 32767 (secs); Soundshaper's max. may be exceeded.

[2122] Silences
SILENCES (CDP: sfedit manysil): insert multiple silences

SILENCES inserts multiple silent segments using a timesfile of time-duration pairs. Though strictly not a breakpoint file, this data can be created/edited in Graph-Edit. The silences are added to the soundfile length; to mask portions of a sound with silences, see MASKS.

PARAMETERS
SILDATA: Datafile of Time-Duration pairs
  time: when to insert silence; duration: length of silence (>SPLICE)
SPLICE: Length of splice slope 
  Range: 1-100 ms.


[2124] ENDSIL
ENDSIL (CDP: silend): add silence to end of soundfile

ENDSIL adds silence to the end of a soundfile: either a given amount (Mode 1: SILDUR) or enough to give the required output file-length (Mode2: OUTDUR).

MODES
1 Specified silence to add
2 Specify total output duration, including added silence

PARAMETERS
DURATION (Mode 1): Duration of silence to add.
  Range: 0-300 secs Full range: Min 0.000002 to 32767 secs
OUTLENGTH (Mode 2): Total duration of output after silence added.
  Range: 0-300 secs
  Full range: infile-outlength + Min.(0.000002) to 32767 + file-length secs.

NOTES
Although InSil (CDP: sfedit insil) apparently permits the insertion of silence at the end of the sound, in practice it doesn't work - use this function instead. 


[213]  Join
JOIN (CDP: sfedit join): splice sounds together

Join splices sounds together (end-to-end) in the order they were selected. All soundfiles must have same number of channels. To select Infiles 2,3... from the Patchgrid, simply click on the required cell. (Auto-conversion will be applied to an .ana file if no equivalent .wav exists). 

PARAMETERS
(SPLICE): Length of splice slope 
   Range 0-5000 ms; default=15

OPTIONS
 Splice start: Add splice fade-in at start of first file
 Splice end: Add splice fade-out at end of last file

NOTE
JOIN offers a crude but simple means of processing a number of files simultaneously (if they are spliced together first and perhaps separated by silence), provided the channels match and the sounds can be separated after processing. 

[2131] Masks
MASKS (cdp: sfedit masks): overwrite portions with silence

MASKS overwrites listed portions of the sound with silence, using a datafile (TIMESFILE) of from - to times. A series of Markers can be saved to a basic TIMESFILE which may then be edited for use (see Markers menu). 

MODES - as for CUT
 1 Times (secs.: Start and End times given in seconds
 2 Samples: Start and End times given in samples
 3 Grouped Samples: Start and End times given in sample-groups (eg 3=3 stereo pairs)

PARAMETERS
TIMESFILE: datafile  - List of cuts, in from - to pairs (ascending order)
  Range: 0 to filelength secs Mode 1 
        Mode 2/3: samples or sample-groups. Enter eg 44.1 for 44100
(SPLICE): Length of splice slope 
   Range 0-5000 ms; default=15
   
NOTE
Masks has creative potential if another soundfile (or the same one copied) is masked at different but complementary times. The two (or more) sounds can then be given different pan positions or placed in different channels.

[2132] Randcuts
RANDCUTS (CDP: sfedit randcuts) (MULTIPLE OUTS)

Unlike RANDCHUNKS, which extracts a given number of segments at random to separate files, RANDCUTS extracts these according to an average length, with SCATTERING-randomized variation of this. Unless the length given is a high proportion of the filelength, the number of files is likely to be very large; the extracted files are placed in the TEMP OUTFILES folder, not on the Patchgrid. 

Soundshaper asks for a basic outfile name on the parameter page - rcuts.wav is supplied as a default - outputs would then be named rcuts.wav, rcuts_0.wav, rcuts_1.wav, rcuts_2.wav, etc. To generate temporary files, prefix the outfile name with a tilde (~) and these will be cleared when you exit Soundshaper.

PARAMETERS
AVELEN: Average length of chunks to be cut 
  Range: 0.018 to 1/2-filelength secs 
  Full range: .017415 to 1/2-filelength secs
SCATTERING: amount of variation in length of cuts 
  Range: 0 to 8; not >infile_length/AVELEN

[2133] Randchunks
RANDCHUNKS (CDP: sfedit randchunks) (MULTIPLE OUTS)

RANDCHUNKS extracts a given number of segments to separate files, extracted randomly according to a set minimum and (optional) maximum length. The extracted files are normally placed on the Patchgrid (a dialog asks for confirmation). 

RANDCHUNKS provides a useful way of extracting a number of segments which you might treat differently (e.g. pan) and then mix together or interleave into a multi-channel file.

PARAMETERS
CHUNKS: the number of chunks to cut  
  Range: 2-999
MIN LEN: Minimum length of the chunks 
  Range: 0.05 to filelength seconds
(MAX LEN): Maximum length of the chunks 
  Range: 0.05 to filelength seconds

[214] Joinseq
JOINSEQ (CDP: sfedit joiinseq): join files in a given sequence

JOINSEQ is the simplest sequencer function within CDP (except perhaps for REPETITIONS).
Soundfiles are joined end to end in an order given in SEQ. No start times are offered, but any of the sounds may be repeated. The whole soundfile is used and no pitch variation is possible. 

The sequence file (SEQ) lists the Infiles as numbers, numbered according to the order they were selected (the source cell is Sound No.1). Sounds must have the same channel-count.

PARAMETERS
SEQ (CDP name: pattern):  datafile of sound numbers, listed in the required sequence order.
Numbers must correspond to the number of input files. Numbers can be in any order and can be repeated any number of times. For example:
	1
	3
	2
	2
	1 etc.
  Range: 1 to number of infiles, coded in the order they were selected.
(SPLICE): Length of splice slope.
  Range: 1 to 5000 ms
(MAX ITEMS): limit the pattern to the first N items in the list.
If N exceeds the actual number of items, the whole list is used.
  Range: 1-100 Full range: 1-32767

OPTIONS
 Splice start: add splice fade-in at start of sequence
 Splice end: add splice fade-out at end of sequence

NOTES
JOINSEQ provides a crude but simple way of achieving bulk-processing in Soundshaper: simply join the sources end to end, perhaps interspersed with a silent sound (e.g. 2 1 3 1 4 1 etc., where 1 is silence) and process the resultant soundfile. Some separation editing will be required at the other end and certain processes which process the whole file (like SCRAMBLE or SHRED) must be avoided.

[2141] Joindyn
JOINDYN (CDP: sfedit joindyn): join sounds in given sequence, with level

JOINDYN extends the simple pattern-sequencing of JOINSEQ by adding a Level field to the sequence file (SEQDYN). Soundfiles are joined end to end in an order given in SEQDYN. The whole soundfile is used and no pitch variation is possible. 
Soundshaper assumes the source cell is Sound No.1; for the others, click on the required cell, or select using the file selector. Sounds must have the same channel-count.

PARAMETERS
SEQDYN: Text data file of Sound No. and Level (0-1), e.g.:
;Snd    Level
1	1.0
2	0.4
3	0.6
2	0.4
etc.
  Range: 1 to number of infiles, coded in the order they were selected.
(SPLICE): Length of splice slope. 
  Range: 0 to 5000 ms.

OPTIONS
 Splice start: Apply splice to start of first sound
 Splice end: Apply splice to end of last sound

[2142] Switch
SWITCH (CDP: sfedit twixt / sphinx): switch between several soundfiles

Switch switches between soundfiles, which may be imagined as running on parallel tracks. 

The Single-switch modes ("twixt") use a single list of switch times: by default a single-column Timesfile, "times.txt"  

In Multi-switch modes ("sphinx"), each file has its own list of times. These are amalgamated into one multi-column datafile (see Data Editor: Merge Columns), "switchtimes.txt". The switch times run in parallel: the Nth switch time in one file corresponds to the Nth switch time in another, but they are not necessarily the same actual time.(Hence Switch would switch segments from Time1 in File1 to Time2 in File2, but these may be different times.) 

Sequence modes: switch from one sound to another in sequence; 
Permutated: switch in sequence, but with the time-segment order randomly permutated; 
Random: choose time-segments at random. You can also randomise the order of the sounds (see Option).

MODES
1(CDP twixt 1) Single-switch Sequence: Switch using single set of switch times
2(CDP sphinx 1)Multi-switch Sequence: Switch using different switch times
3(CDP twixt 2) Single-switch Permutated: Time-segment order randomly permutated
4(CDP sphinx 2)Multi-switch Permutated: Time-segment order randomly permutated
5(CDP twixt 3) Single-switch Random: Time-segment order chosen randomly
6(CDP sphinx 3)Multi-switch Random: Time-segment order chosen randomly

PARAMETERS
TIMES (Single-switch modes 1,3,5): Datafile - list of times in ascending order dividing file into segments 
  Range: 0-filelength secs
SWITCHTIMES (Multi-switch modes 2,4,6): Datafile (1 column per soundfile) of switch times; the actual times need not match 
  Range: 0-filelength secs
SPLICE: Length of splice slope 
  Range: 2-15 ms
SEGCOUNT(Mode 3-6): number of segments in permutated / random output 
  Range: 1-10000
WEIGHT(Mode 3-6): Multiplier; if set, 1st file occurs WEIGHT times more than other files 
  Range: 1-10

 OPTION: 
Random order (all modes): If set, order of files used is randomly permutated (otherwise in rotation)

NOTES
The function ONSETS (Info Menu: Gated Onsets, CDP: housekeep extract 6) can provide a list of switch points that coincide with the onsets or attack-points in a sound file. A suitable gate_level might be .035 and min_length .05, and all other parameters set at zero (note by G. Ciamaga).

[215]  SplitChans
SPLITCHANS (CDP: housekeep chans 2): split channels into separate files

SplitChans extracts channels to separate files, one per channel, placing these on the Patchgrid where possible. The process runs directly, as it has no parameters. (Inputs may be Mono, Stereo, or Multi-channel)

[2151] MtoN
MTON (CDP: mton): convert mono to m-c file

MtoN converts a mono into a multi-channel file, by duplicating the signal across all output channels.

PARAMETER
OUTCHANS: number of output channels 
  Range: 2-16

[2152] OneChan - NOT IN USE? -- see channelx
SUUMMARY for ONECHAN (CDP: housekeep chans 1): extract one channel

ONECHAN extracts one channel from a stereo or multi-channel soundfile. (Mono is accepted)

[2153] 
MergeChans - NOT IN USE? see Interleave

[2154] ZeroChan
ZEROCHAN (CDP: housekeep chans 3)

Zerochan zeroes (converts to silence) one of the channels in a stereo/multi-channel sound. Infile can be Mono/Stereo/M-c: a mono file is converted to stereo with one silent channel.

PARAMETER
CHANNEL: Number of the channel to zero
  Range: 1-16 (depending on input channel-count, as shown on Parameter page).

[2155] StoM
STOM (CDP: housekeep chans 4): convert stereo to mono file

StoM merges the two channels of a stereo file to create a mono one. (Multi-channel files are also accepted.) Many CDP processes are natively mono-only, but Soundshaper mostly handles stereo and m-c input as well. When a process genuinely has to have mono input (e.g. to place sounds in m-c space), this is the function to use.

PARAMETERS: none

OPTION
 Invert phase of second channel before mixing: not implemented

[2156] MtoS
MTOS (CDP: housekeep chans 5): convert mono file to stereo

MtoS converts a mono file to stereo by duplicating the signal in both channels.

PARAMETERS: none

[2157] SwapChans
SWAPCHANS (CDP: modify space 2): exchange channels in a stereo file

SWAPCHANS places the right channel on the left and vice-versa.

PARAMETERS: none

[2158] MchStereo
MCHSTEREO (CDP: mchstereo): place stereo files in M-C space

MchStereo (Menu Edit/Mix | Channels) aims to place stereo files within a multi-channel file (called a "frame"). CHANDATA gives the centre position within the frame of each input stereo file in turn: e.g. 3 means centred on channel 3. The centre can be raised by a half-channel (SHIFT option), so that 3 would mean centred between 3 and 4.

It is best to envisage a ring formation for channels, to understand the process, and then adjust this for your own speaker configuration. The "ring" layout is given below.

PARAMETERS
CHANDATA: text list of output centre positions for each source stereo pair, in order.
  Range: 1 to number of output channels
  Example: 1 3 5 7
   4 stereo pairs placed in 8-channel "frame", with 1/2-shift to right:
   1st pair between chans 1 and 2
   2nd pair between chans 3 and 4
   3rd pair between chans 5 and 6
   4th pair between chans 7 and 8  
OUTCHANS: number of output channels
  Range: 2 to 16 (2 is uncertain; minimum is probably 3 in practice)
PREGAIN: Attenuate the input signals prior to processing
  Range: 0.001 to 1 

NOTES
Ring channel layout:      1
                        8   2
                      7       3
                        6   4
                          5
For simple use, interleaving channels (INTERLEAVE) is easier to understand, but places channels according to the order of file selection: 1st pair to chans 1-2; 2nd to chans 3-4, etc. MchStereo is more flexible, though two stereo pairs centred on the same channel number are effectively just mixed together.

Example: output from 4 source mono channels interleaved into two stereo pairs 1-2 and 3-4 and placed into 4 channel file with CHANDATA 1 3 (no shift). 1-2, centred on o/p 1, have Srce1 shared between Chans1 and 4 and Srce2 shared between Chans 1 and 2.  

CHAN  |         << -----  OUTPUT CHANS ----- >>
DATA  | Ch1		Ch2		Ch3		Ch4    
------------------------------------------------------------
1 3 	1+2 		2+3		3+4		4+1  

[2159] MoveChans
MOVECHANS (CDP: frame shift 3-6, 8): move channel numbers

MoveChans  moves channel numbers (see NOTE) around in a multi-channel file. The "frame" in the CDP name appears to be simply the full set of channels.  

Mode 1 (CDP Mode 3) changes the order of the channels, using REORIENT, which lists each destination channel, not the new channel order. The alternative function MCHORDER (q.v.) handles this more simply.  

Mode 2 (CDP Mode 4) mirrors channels symmetrically around a single channel-number. While this is easy to understand for an odd-numbered set (1 2 3 4 5 mirrors to 5 4 3 2 1), it is not entirely clear what is meant for an even-numbered layout. 8 chans mirrored around 4/5 would give 8 7 6 5 4 3 2 1. Around 7/8: 4 5 6 7 8 1 2 3 mirrors to 3 2 1 8 7 6 5 4, which means that 1 2 3 4 5 6 7 8 have become  6 5 4 3 2 1 8 7.

Mode 4 (CDP Mode 5) swaps any one pair of channels, CHAN_A with CHAN_B

Modes 3 and 5: convert between different channel numbering systems as shown in NOTES: Ring-Bilateral or vice-versa;  Ring-->BEAST or vice-versa. 

MODES
 1 Channel order: Change order of channels 
 2 Mirror plane: Mirror channels around a plane specified by channel no.
 3 Ring to Bilateral: Change channel configuration from Ring to Bilateral numbering or vice versa
 4 Swap channels: Swap channel numbers: A with B
 5 Ring to BEAST: Change channel configuration from Ring to BEAST-bilateral numbering or vice versa

PARAMETERS
REORIENT: List of destination channels (Mode 1)
  Range: 1 to no. of chans; e.g. 3 1 2 4 = chan 1->3, 2->1, 3->2, 4->4; new order is 2 3 1 4 
CHAN: Channel around which frame is symmetrically mirrored (Mode 2)
  Range: 1-no. of chans; can also be a 1/2-channel, e.g. 1.5
CHAN A: Number of channel to exchange with Channel B (Mode 4)
  Range: 1-no. of chans
CHAN B: Number of channel to exchange with Channel A (Mode 4)
  Range: 1-no. of chans

 OPTION
Bilateral to Ring: Convert chan. configuration from Bilateral to Ring. Default is Ring to Bilateral.

NOTES
The program assumes that numbering is in a Ring pattern.
Ring, Bilateral and BEAST (Birmingham Univ.) 8-channel numberings are as follows:
                   RING           BILATERAL          BEAST
                     1                1                7
                  8     2          2     3          1     2  
                 7       3        4       5        3       4
                  6     4          6     7          5     6 
                     5                8                8
Frankly, there is nothing here that can't be done much more easily with MCHORDER.


[216]  Gatextract
GATEXTRACT (CDP: housekeep extract 1): extract segments to separate files (MULTI-OUTS)

Gatextract extracts segments to separate files, using a gate level; the files may optionally be placed on the Patchgrid. If the gate is too low, a large number of files may be extracted. Use the ONSETS function first to test how many segments would be found with a particular gate level.  

Although all parameters are theoretically optional, at least GATE or THRESHOLD should be set.

PARAMETERS
(GATE): Amplitude level above which signal accepted. 
  Range: 0 to 1; default: 0
(SPLICE): Length of splice slope in milliseconds (Range: 2-200 ms; default: 15ms)
(END CUTOFF): Cut-off level below which end of sound is cut. 
  Range: 0 to 1; default: 0 (if 0, defaults to gate level)
(THRESHOLD): Level above which sound extracted; sound < threshold level discarded
  Range: 0 to 1; default: 0
(HOLD): Hold the sound for this no. of sectors before start of next segment
  Range: 0-64, default 0)
(BACKTRACK): Go backwards in s'file + keep this no. of sectors prior to current gate-on: use with INITIAL.
  Range: 0-64
(INITIAL): Amplitude level at start of backtracked segment; use with BACKTRACK.
  Range: 0 to 1
(MIN_LENGTH): Minimum length of segment to keep (secs)
(GATE WINDOW): Length of gate window (sectors): gate closes if level < GATE for GATE_WINDOW + 1 sectors. 
  Range: 0-64 (sectors)

OPTION:  Stop process if one of the outfile names pre-exists. Default: continue but miss that filename.


[2161] Trim
TRIM (CDP: housekeep extract 3, "TopnTail"): remove unwanted silence 

TRIM removes silence or low-level signal at the start and/or end of sound. GATE sets the level above which the signal is accepted. SPLICE is also useful to avoid an abrupt start and end to the sound. 

PARAMETERS
GATE: Amplitude level above which signal accepted. 
  Range: 0 to 1 Default: 0
SPLICE: Length of splice slope in milliseconds 
  Range 2-200 ms; default: 15ms

OPTIONS
 Trim end only: Remove unwanted signal from end of sound only
 Trim start only: Remove unwanted signal from start of sound only

[2164] DCOFFSET
DCOFFSET (CDP: housekeep extract 4 / dcfix (Rel8) attempts to remove d/c offset by rectifying the signal (Mode 1) or replacing it with silence (Mode 2).

MODES
1. Rectify signal: shift entire signal to eliminate unwanted d/c component
2. Silence d/c: replace d/c with silence

PARAMETERS
SHIFT (mode 1): raise or lower level to eliminate d/c offset
  Range: -1 to 0 to +1
MINDUR (mode 2): minimum duration that d/c must persist to be suppressed
  Range: 10 to 100 mS

NOTE: Mode 2 has not yet been tested (Apr. '21), due to a lack of a suitable signal


[2166] Onsets
ONSETS (CDP: housekeep extract 6): extract gated onset times 

ONSETS (Menu: Info | Soundfiles | Gated onsets) finds a series of times when significant sound events begin. The parameter GATE is used to decide when the signal has risen above GATE level. END CUTOFF may be useful to define a different GATE level at the end of a sound. THRESHOLD seems to duplicate GATE in a way and may be left at 0. MIN LENGTH is an awkward parameter: if set too low, more times may be extracted than you thought possible; on the other hand, if a single segment is shorter than MIN LENGTH or twice the splicelength (presumably set internally), the function fails.


PARAMETERS
GATE: amplitude level above which accepted as signal 
  Range: 0-1 (default 0, but 0.35 recommended)
END CUTOFF: cut-off level below which end of sound is cut
  Range: 0-1; if 0, defaults to GATE
THRESHOLD: level above which onsets are extracted; level < THRESHOLD is discarded, subject to GATE (?)
  Range: 0-1, default 0
BACKTRACK: keep this number of sectors prior to current gate-on
  Range: 0-64, default 0
INITIAL: amplitude level at start of backtracked segment; use with BACKTRACK
  Range 0-1, default 0
MIN LENGTH: minimum length of segment to keep*
  Range: 0- file-length secs
GATE_WINDOW: length of gate window: gate closes if level < gate_window + 1 sectors
  Range: 0-64 sectors (not clear what sectors are)l; default 0

NOTES
This is a potentially very useful but rather fussy function. You may have to experiment with GATE and MIN LENGTH.
A suitable GATE level might be .035 and MIN_LENGTH .05, and all other parameters set at zero. (G.Ciamaga)
If the whole file is below this gate level, then lower GATE.
ONSETS can provide a list of switch points that coincide with the onsets or attack-points in a sound file. The points might also be used for MASKS, MULTICUT etc.
* ONSETS is one mode of a process which cuts and keeps segments

[2168] SUBTRACT  
SUBTRACT (CDP: subtract): Subtract one channel from another
  
Subtract subtracts a mono file (Infile 2) from one channel of another file (Infile 1).
The only parameter - CHAN - sets the channel (if any) from which Infile 2 is subtracted.

The process involves inverting the signal to be subtracted and summing the result with another signal (the channel of Infile 1) If the two signals were identical, the result will be silence, otherwise the residue will be an attenuated signal without the levels of Infile 2. You can use the function to test whether two channels were the same; to subtract whatever right-channel signal was in the left channal and vice versa; or experimentally with two unrelated signals to remove the "shadow" of Infile 2 from Infile 1.

PARAMETER
(CHAN): channel of Infile 1 from which Infile 2 is subtracted
  Range: 1-no.of channels.

NOTES


[218]  ZeroExtract
ZEROEXTRACT (CDP: housekeep gate 1): extract segments at zero-amplitude points (MULTI-OUTS) 

ZeroExtract appears to be like ZeroCuts, which extracts multiple files at zero-crossings according to given times. However, ZEROEXTRACT has only one parameter, Zero_Count, which sets the size of the gap between segments. The result is usually a very large number of extracted files, which are placed in the TEMP folder, not on the Patchgrid.

PARAMETER
ZERO COUNT: number of consecutive zero samples (per channel) to indicate a gap / cutting point
  Range: 1 to 33

[2181] PARTITION   
PARTITION (CDP: partition): partition sound into disjunct files (Mono-in; MULTI-OUTS) 

PARTITION and its sister function ISOLATE cut the sound into disjunct pieces, sent to separate output files, which retain the original timings of the cut segments by inserting appropriate silences. This allows the outfiles to be treated differently and then remixed.

Partition segments the whole file and assigns each piece in turn to the output files, whose number is set by OUTCOUNT. This typically results in several segments per file.  For example, if 8 segments are cut, and there are 2 output files, then each output file gets 4 segments. 

In Mode 1, the cut segments are defined by groups of wavesets (segments defined by zero-crossings: see DISTORT suite). The number of wavesets in each group is set by GROUPCOUNT. In Mode 2, they are defined by length (DUR parameter, randomized by RAND).  

Note that if the number of output files exceeds 16, they will not fit on to the Patchgrid, but are saved separately in the TEMP.OUTFILES folder.

MODES
 1 Segments cut are defined by groups of wavesets.
 2 Segments cut are defined by duration.

PARAMETERS
OUTCOUNT: number of output files 
  Range: 2-256; Soundshaper's max. of 16 may be exceeded, but the outputs will not be on the Patchgrid
GROUPCOUNT (Mode 1 only): Number of wavesets (zero-crossings) per block. 
  Range: 1-1024
DUR (Mode 2 only): Length of each segment.
  Range: 0-Infile-length, but also short enough for at least 1 segment per outfile
(RAND) (Mode 2 only): Randomize (vary) segment length
  Range: 0-1
(SPLICE) (Mode 2 only): Length of splice slope 
  Range: 1-500 msecs; default 3msecs

NOTE
Partition was intended for CDP Rel7 but not included. Contact R.F. for details. It is not enabled in Soundshaper menus if not present in your CDP programs folder.

[2182] ISOLATE  
ISOLATE (CDP: isolate): Disjunct cuts with silent surrounds (MULTI-OUTS)
 
ISOLATE and its sister function PARTITION cut the sound into disjunct pieces, sent to separate output files, which retain the original timings of the cut segments by inserting appropriate silences. This allows the outfiles to be treated differently and then remixed. In Isolate, the pieces to cut are specified in a textfile, or controlled by the dB loudness of the source.  In Modes 1-3, an extra file of remnants (if any) is created. (This would allow the original file to be reconstructed by remixing all the output files.)

Modes 4 and 5 are closest to Partition, in segmenting the whole file at the times listed in SLICE-TIMES. Mode 5 further provides for overlaps (set by DOVETAIL), intended for cutting syllables put of speech.
Mode 1 produces multiple outs, each of a single segment (preceded as necesary by silence). The times are specified as a timesfile of from-to pairs (CUT-TIMES) and the number of cuts determines the number of outfiles. (Unsegmented portions are left in the remnants file.)

Mode 2 produces the same output as Mode 1 unless the Cut-Times datafile is sructured differently -- see NOTES below.

Mode 3 aims to produce one output of multiple segments (plus the remnant file), determined by gated levels set by ON and OFF (both in dB). (Problem here is that if a number of qualifying segments get through to the output file, they've not been isolated!)
 
There are two Options: the first adds silence at the end to match the original duration. The second reverses the cut files, including the silences.

MODES
 1 Multi outs/single seg: cut single segment per outfile
 2 Multi outs/multi seg: cut multiple segments per outfile
 3 Single out/multi seg: single outfile of several disjunct segments
 4 Whole file/multi seg: slice whole file - one segment per outfile
 5 As Mode 4 but with overlaps: slice whole file with overlap - one segment per outfile

PARAMETERS
CUT-TIMES: Timesfile list of segment times, in from-to pairs (ascending order; no overlaps)
SLICE-TIMES: List of ascending times at which to cut whole file (secs)
ON: dB level at which a segment is recognised (Range: -60 to 0 dB)
OFF: dB level at which recognised segment is triggered to end (Range: -96 to 0 dB)
(SPLICE): Length of splice slope (1-500 ms)
(MIN): min duration of segments to accept (20-500 ms; > 2 * SPLICE)
(LEN): duration of (part-)segment to actually keep (> 0 ms)
(DOVETAIL) (Mode 5): overlap of cut segments in mS (range 0 -20 default 5) 

OPTIONS
 Match orig. duration: add silence at end of each output file to match source duration
 Reverse segments: reverse all cut-segment files (except remnant file)


NOTES
Like Partition (q.v.), Isolate cuts the sound into separate segments, producing multiple outputs. However, while Partition segments the whole file, here only two Modes (4 and 5) do this, outputting only one segment per outfile. From Soundshaper's viewpoint, the number of outputs are hard to control and may well exceed the capacity of the Patchgrid (16). 

Difference between Modes 1 & 2:
Modes 1 and 2 will give identical output with the same datafile if the time-pairs are on separate lines, e.g.:
0 0.5
1 1.5
2 2.5
which gives 3 files of segments and 1 file of the remnant-sound.

However, if some of the data-pairs are on the same line, the modes interpret the data differently. E.g. with:
0 0.5  1 1.5
2 2.5
Mode 1 gives same output as before, 3 files of segments (and 1 of remnants).
Mode 2 puts the 2 segs in the first line (0 0.5 1 1.5) into the SAME output file,
So produces only TWO files of segments (and 1 of remnants). [T.W.]


[2183] FRACTURE  
FRACTURE (CDP: fracture): cut enveloped segments and disperse in m-c space

Fracture cuts the input sound into enveloped segments of a given duration and disperses them in multi-channel space. The main effect is like a multi-channel tremolo: ETAB is a datafile giving relative time and level within the pulse envelope, while PULSE sets the (average) gap-time between the segments.  

MODES
 1 N-Chan dispersal: Output is N-channel dispersal in N-channel space.
 2 Stereo dispersal: Output is stereo dispersal (possibly moving) in surround space.  

PARAMETERS
ETAB:file; lines of Time +7 pairs of: etime (relative time within envelope)(0-1) & level(0-1)
OUTCHANS: Number of output channels (2-16; Mode 2: multiples of 4 only).
STREAMS: No. of spatial positions (streams) for resulting fragments (>= 4).
PULSE: average gap betwen one set of fragments (each in different stream) the next (secs).
ENVDEPTH: Depth that envelope cuts down to: 1=zero; 0.5=1/2 way, etc; >1 stacks frags (see Usage).
STACKINT: stack transposition interval (0-12 semitones; 0 read as 8ve. NO ZEROS in brkpoint files.)
CENTRE: Channel from which stereo-image spreads out.
FRONT: Output leading edge
  Range: +/1 1 = in centre chan; -1= in chan. opposite; 0 = bisect entire N-channel space.
DEPTH: maximum proportion of all output chans turned on, behind front.
ROLLOFF: fall in level as signal spread over several chans. Range 0-1; 1=level div. by no. of chans.
(SEED): If > zero, repeating process with same seed gives identical output.
(MINDUR): minimum duration of fragments (secs; zero = no minimum).
(MAXDUR): maximum duration of fragments (secs; 0= no maximum; 1 scatters in range +/- 1/2 pulse-duration).
(READRAND): Randomisation of read-time in source (0-1).
(PULSERAND): Randomisation of pulse-time in output (0-1).
(DISP): Dispersal (scatter) of output timings between different streams (0-1).
(LEVRAND): Randomize fragment levels (0-1).
(ENVRAND): Randomize envelope time range (0-1)
(STACKRAND): Randomize stack value (S: S=DEPTH-1). 0:Stack value = S  1: rand.val. 0-S
(TRANSRAND): Randomize transposition of fragments. 
  Range: 0-1200 cents = 1 8ve; pitch is 0 to +/- TRANSRAND

NOTES

[2200] GATE
GATE (CDP: gate): remove low-level signal
 
GATE cuts out signal which falls below a given level. In this implementation, the gated signal is either zeroed (replaced with silence) or excised (removed altogether), shortening the file-length). GATELEVEL sets the threshold level below which the signal is removed. 

MODES
 1 Silence: replace low-level signal with silence
 2 Excise: remove low-level signal and close gap

PARAMETERS
GATELEVEL: threshold level below which signal drops out
  Range: -96 to 0 dB

NOTES
The function may be compared with its spectral equivalent SPECGATE and an equivalent envelope warp function (ENVLEVEL | GATE). 
Gating is a suitable way of separating more significant events with silence, so that the events may be RETIMED, for example.


[2210] RotateChans
ROTATECHANS (CDP; frame shift 1-2): rotate channels in an m-c file
 
RotateChans rotates the order of channels in a multi-channel file at a speed defined by ROTATION. The pattern of rotation is set by SNAKE. If SNAKE=0, the rotation is simple numerical order (e.g. 1 2 3 4), but other patterns may be defined, e.g. 4 2 3 1 and these can change in time (datafile of time and snake-list). 

In Mode 2, odd and even entries are rotated independently (e.g. a snake-list of 5 3 6 4 7 2 8 1 would define 2 paths of odd entries: 5 6 7 8 and even ones: 3 4 2 1. Note that these are entries in the list, not chan. numbers.) The rotation speeds is defined by ROTATION for odd entries and ROTATION2 for even ones.

MODES
 1 Rotate all channels
 2 Rotate odd-numbered and even-numbered entries separately

PARAMETERS
SNAKE: 0 or datafile defining rotation pattern
  Range: 0 or 1-no. of chans.
  Example (8-chans):
       ;time     snake-route
        0.0      8 6 5 2 7 3 4 1
        1.5 	 4 1 5 2 6 7 8 3
ROTATION/ROTATION2: Rotation-rate of full snake-route; neg. values rotate anti-clockwise
  Range -500 to +500 Hz
(SMEAR): Degree to which signal bleeds into adjacent channels
  Range: 0 to 0.5

NOTES
Rotation speeds greater than about 20Hz will start to blur channels, ultimately reaching the impression of mono across all channels. 

[2211] [2212] [2213] 
TANGENT (CDP: tangent onefile / twofiles / sequence) - M-C mixfile out(.mmx)
 
TANGENTONE: Repeat mono sound along a tangent to an 8-channel ring (Mono in; M-C mixfile out).
TANGENTTWO: Repeat two mono sounds on a tangent path (Monos in; M-C mixfile out)
TANGENTSEQ: Play a sequence of mono sounds on a tangent path  (Monos in; M-C mixfile out)

The TANGENT programs generate a multi-channel mixfile (.mmx). The source sound is repeated, moving across multi-channel space at a tangent to an assumed ring of eight loudspeakers / channels. (See NOTES.) The circle of speakers is taken to be front-centred and numbered clockwise, starting with Channel/speaker 1 at front-centre 0)

FOCUS defines an initial loudspeaker to or from which motion takes place (the default is 1 = front centre). Assuming this is speaker 1, in Mode 1 the tangent starts along a line at right-angles to speaker 2 and the motion is between 3 speaker pairs: 1-2, 2-3, 3-4. The maximum angle  of rotation (MAXANGLE) lies between speakers 3-4 (90 to 135). In Mode 2, with FOCUS at 1, the tangent starts along a line formed by speakers 2 and 3; the motion is also between the three speaker pairs 1-2, 2-3, 3-4 and SKEW sets the ratio of time spent between last pair (3-4 in this case) and the penultimate pair (2-3 in the example).

MODES
 1 Tangent starts along line at right-angles to FOCUS loudspeaker plus 1.
 2 Tangent starts along line formed by FOCUS loudspeaker +1 and +2 (e.g. 2 and 3 for FOCUS=1)

PARAMETERS
DUR: Duration of output file 
  Range: minimum is 2 x Infile-length
STEPS: Count of events in tangent stream. (not TANGENT SEQ or LIST)
  Range: 2-32767
MAXANGLE (Mode 1): Maximum angle of rotation of motion from centre line 
  Range: 90-135 degrees for FOCUS=1.
  (This parameter range depends on the value of FOCUS.)
SKEW (Mode 2): Ratio of time spent between last two speaker pairs e.g. 2-3 & 3-4 for FOCUS=1 
 Range: 0-1
DEC: Gain reduction on passing from one event to the next 
  Range >0 to <1
BALANCE (TANGENT TWO only): progressive accumulation of the second sound in the mix
  Range: 0-1
FOCUS: loudspeaker to or from which motion takes place 
  Range: 1-8; default: 1= front centre.
(JITTER): Randomisation of event timings 
  Range: 0-1, default 0; T-V
(SPEED): Speed of the pan-motion acceleration 
  Range: 0-1? default 0.5

OPTIONS: 
Sounds recede. Default: sound approaches
Left motion: Motion to or from LEFT of focal loudspeaker (default: to or from right).
 
NOTES
Eight-channel/loudspeaker 'ring' layout:

     DEGREES:                0		
	
                             1                        
                          8     2                  
   CHANS/SPKRS:  275   7         3  	90              
                          6     4                  
                             5        

                            180   

[2214] TangentList    
SUMMARY
Not yet supported in Soundshaper. See TangentOne for now. 


[2215] Panorama
PANORAMA (CDP: panorama): place mono files spatially in surround-sound. (M-c mixfile out)

PANORAMA takes a number of mono source files and generates a multi-channel mixfile (.mmx) to place them in multi-channel space, using a specified angle (Mode 1) or given speaker positions (Mode 2), or randomly.   

The listener is asssumed to be in the centre of the auditorium, with an array of loudspeakers (channels) distributed across an arc from left to right, where 0 is centre-front and 180 is centre-rear. The line from 0 to 180 is called the "centre line". In a standard stereo configuration, speakers are 60 apart, at -30 to +30; however, in PANORAMA, these positions would be specified in Mode 2 as 330 (360-30) and 30, in other words as positive values round the full circle from 0 to 360. (See diagrams in NOTES.) 

In Mode 1, ANG_WIDTH sets the angular width from left to right position. The loudspeakers are assumed to be equidistant across the arc of this angle. The minimum value is 190 (just greater than 180) with loudspeakers from (just behind) left of central-listener (-95), through to (just behind) right of central listener (+95), with none in the rest of the space behind the listener. The maximum is 360, with the loudspeakers completely encircling the listener from -180 (leftmost) to +180 (rightmost) and both leftmost and rightost sharing loudspeaker 5 (see 'ring diagram below).  In Mode 2, a textfile (SPKR_POS) specifies the angular positions of the loudpeakers (in positive degrees).

The angle of the sound-spread (SNDS_ANGLE) is either the same as the speakers' angle (in other words spread across the full speaker space), or can be narrower than this.  If narrower, the arc can be nudged to the left or right by an angular offset value (ANG_OFFSET). The range of offsetting is limited to the amount of narrowing, i.e. the difference between ANG_WIDTH and SNDS_ANGLE (+/- the angle between the centre-line of the sounds and the centre-line of the loudspeakers).

You can configure the output of sounds within the sound-angle: either equally (CONFIG=1), or two sounds equally spaced, followed by a gap (CONFIG=2), o3 3 equally spaced, followed by a gap (CONFIG=3), and so on. Or you can randomise the sound-positions (RAND).

Finally, there are options for paired front speakers instead of a single speaker at centre-front (refer to diagram for TRANSIT Modes 2 and 4), and similarly for paired front sounds. Both of these apply only to a full 360 ring of speakers and sounds.

MODES
1  Speaker count: place mono files spatially by no. of speakers.
2  Speaker positions: place mono files spatially using a list of speaker positions.

PARAMETERS 
SPEAKERS (Mode 1): number of loudspeakers (assumed to be equally spaced). 
  Range: 3 to 16
ANG_WIDTH (Mode 1): Angular width (total spread angle Left to Right) of loudspeaker array; assumed symmetrical around centre-line. 
  Range: 190-360
SPKR_POS (Mode 2):  Textfile list of angular positions of (3-16) loudspeakers; the no. of lines indicates the no. of speakers.
  Values to right of centre lie between 0 (front)and 180 (rear);
  Values to left of centre lie between >180 (rear) and 360/0 (front)
  Range: 0-360
SNDS_ANGLE: angular width of the output sounds (0 - 360).
ANG_OFFSET: angular offset of output sounds - angle between centre-line of sounds and centre-line of loudspeakers.
CONFIG:  Distribution of output sounds within output angle
         config = 1: sounds equally spaced
         config = 2: 2 sounds equally spaced, followed by gap, etc.
         config = 3: 3 sounds equally spaced, followed by gap
         and so on
         Config must be a divisor of number of input sounds.

RAND:  Randomisation of sound positions (0-1).

OPTIONS
 Paired front speakers
  If ANG_WIDTH (angular width of loudspeakers) < 360 :
     Odd no. of lspkrs gives 1 lspkr at centre front.
     Even no. of lspkrs gives pair of lspkrs centred on front.
  If ANG_WIDTH = 360, speaker orientation is ambiguous.
     Default is 1 lspkr at centre front.
     Set option to give pair of lspkrs at front.
         (Option is IGNORED if ANG_WIDTH < 360 )
 Paired front sounds       
  Same logic for SOUND positions (ignored if SOUNDS_ANGLE < 360 )

NOTES
The listener is assumed to be in the middle of a listening area, facing the front, and (typically) surrounded by speakers.
Diagram 1 shows an 8-channel/loudspeaker 'ring' layout, with a centre-line from 0 to 180:

DIAGRAM 1: 8 speakers equally spaced around 360 spread (listener at 'x'). Angular width: 360

     DEGREES:             360/0		
                             1                        
                          8  |  2                  
   CHANS/SPKRS:   275  7    x    3   90              
                          6  |  4                  
                             5        
                            180  
    

DIAGRAM 2: 5 speakers spread equally across an angle of 180, from 275 (leftmost) to 0 (front) to 90 (rightmost). Angular width: 180
(In Mode 1, the minimum angular width is in fact slightly wider than this: 190.)

     DEGREES:             360/0		
	
                             3                        
                          2  |  4                  
   CHANS/SPKRS:   275  1    x    5   90              
                             |                   
                             |      
                            180   


[2216] ToStereo (R8)
TOSTEREO (CDP Rel. 8 - Provisional)

TOSTEREO takes a stereo input, mixes it to mono and then diverges it spatially from mono to stereo (or vice versa). The output is either to a stereo file or to a stereo pair within multi-channel space. For stereo output, the only parameters are the start and end times of the divergence. 

For multichannel output, various optional parameters are used: the number of output channels (OUTCHANS), which of these carries the left channel of stereo and which the right, plus MIXLEVEL, the level of both when mixed initially to mono &#150; also relevant for stereo output.  In multichannel, if LEFTCHAN is selected but RIGHTCHAN is set to zero, the signal will fork from the indicated channel to the channels on either side.

MODES
1. Stereo out
2. Multi-channel out

PARAMETERS
START: start time of divergence from mono to stereo
  Range: 0 to file-length secs
END: end time of the divergence from mono to stereo
  Range: 0 to file-length secs
  If end time is before start time, the file goes from stereo to mono.
OUTCHANS (Mode 2): Number of output channels
  Range: 2 to 8  
LEFTCHAN (Mode 2): the left channel of the stereo pair to diverge to
  Range: 1 to 8 
RIGHTCHAN (Mode 2): the right channel of the stereo pair to diverge to
  Range: 1 to 8 
MIXLEVEL: level of each channel when mixed to mono: set this to avoid clipping.
  Value: 0 OR range 0.5 to 1, default 0. (Set to ZERO for a good default level.) >0.707 is not recommended.

NOTES:
Soundshaper can take a mono input for TOSTEREO, but converts it to stereo before processing, which is something of a technicality, as the stereo output wil still sound mono!
Alternativaly, if your input file is mono, you could use PHASOR to create a pseudo-stereo version and then either apply TOSTEREO, or MIXBALANCE with a time-varying balance to bring in the stereo version gradually.

[2217] Pairex - R8 Prov
PAIREX (CDP Rel. 8  - PROVISIONAL)

PAIREX extracts a pair of channels from a multi-channel file, as a stereo pair. It is almost the same as CHANNELX, except that PAIREX produces a stereo output, whereas CHANNELX extracts two monos (which could then be interleaved to make a stereo file).

PARAMETER
CHANNELS: the channel numbers of the two channels to be extracted as a stereo pair no spaces). These need not be in ascending order: e.g. 42 is acceptable.
  Rnage: 1 to number of channels


[2218] Repair - R8 Prov.
REPAIR (CDP Rel. 8 - PROVISIONAL) - probably not supported

REPAIR is a rather specialist way to interleave files (merge channels) and might be better understood as "Re-pair".  The number of inputs must be a multiple of 2 and the output channels likewise. An example may help: sources A, B, C and D with outchans=2 are interleaved as 2 stereos: A+C and B+D. This matches the usage instruction that input files must be listed with all channel 1 sources in order, first, then all channel 2 sources in order, etc. With outchans=4 we would simply get a 4-channel file of A+B+C+D.

REPAIR assigns output channels to the input files according to the total required number of output channels (OUTCHANS), that is, it divides them into groups. For example with 6 input files and OUTCHANS=2, output channels are assigned as 1 1 1 2 2 2 and there are three outputs: from inputs 1+4, 2+5 and 3+6. For 12 inputs and OUTCHANS=4, the inputs are grouped as 1+4+7+10, 2+5+8+11, 3+6+9+12.

All input files must be mono and the same length. The program produces multiple outputs named <outname>_0.wav, <outname>_1.wav, etc. In Soundshaper, these can be placed on the grid (Soundshaper will rename e.g. A_1_0.wav to the standard A_1.wav), or off-grid: you need to supply the base outname, e.g. "repair".

PARAMETER
OUTCHANS: number of output channels
  Range: 2 to 16 (multiple of 2)

NOTE:
It is probably much simpler just to use the existing interleaving program INTERLX (CHANNELS menu | MERGE chans. or Shift+Ctrl+] ), in which you simply list the input files in output-channel order. INTERLX requires the inputs to have the same number of channels, but these can be mono or stereo and do not have to be the same length. (The alternative CDP program SUBMIX INTERLEAVE does a similar job to INTERLX, but requires mono inputs; for this reason, it is not included in Soundshaper's menus.) 


[2220] [2221] [2222] [2223] [2224]
TRANSIT  Move repeated mono sound(s) across 8-channel space (M-c mixfile out)

TRANSIT (CDP: transit simple / filtered / doppler / doplfilt / sequence): move repeated mono sound(s) across 8-channel space (M-c mixfile out)

Like TANGENT, the TRANSIT programs generate a multi-channel mixfile (.mmx) and repeat a (mono) source or sources which move(s) across the multi-channel space of an assumed ring of eight loudspeakers / channels.  Here, each mode defines a different pattern of movement in relation to the ring. (See diagrams). The odd-numbered modes (1,3 and 5) assume a front-centred channel 1; the even-numbered modes 2 and 4 are for a circle with two front and two rear channels/speakers, plus side ones. In this latter formation, the centre front at 0 has the channel-position 1.5, not 1.

FOCUS sets the central "focal" channel of the transition. In the even-numbered modes, this should be 1.5, or 2.5, etc. as (for example). The transition is towards this point and then away from it.
 
DUR gives the duration of the movement to the centre and STEPS gives the number of events from edge to centre. (More steps suggests more, and closer, repetitions, but this doesn't seem to be the case.)

MAXANGLE (Modes 1-4) defines the maximum angle from the centre line; MAXDIST (Mode 5) gives the maximum distance reached from the centre line. ("Centre line" needs further clarification. - RF)

DEC attenuates the signal on each repetition.
MIXIN (CDP: FDEC) 
  
MODES
The modes define various transitions across ring channel-layouts. (See diagram below.) 

1 GLANCING: Move across central front speaker of ring formation
2 EDGEWISE: Move across two front speakers of alternative ring formation     
3 CROSSING: Move from Front L to Front R of ring formation        
4 CLOSE:    Move from Side Front L  to Side Front R of alternative ring formation      
5 CENTRAL:  Move between central pair (L to R) of ring formation

Mode: 1                2                  3                 4                   5
  (Glancing)      (Edgewise)          (Crossing)         (Close)            (Central)
->>---O->>      ->>--O---O->>             O               O   O                 O
  O       O                      ->>--O-------O->                           O       O
                  O         O                      ->>-O---------O->>
 O         O                         O         O                       ->>-O---------O->>
                  O         O                          O         O
  O       O                           O       O                             O       O
      O              O   O                O               O   O                 O


PARAMETERS
FOCUS: Centre channel of motion. Integer for odd modes. For even modes, use 1.5, 2.5 etc. 
(In the alternative ring formation, Modes 2 & 4, front 0 is at channel 1.5, not 1.)  
  Range: 1-8 integers (Modes 1,3,5); 1.5, 2.5, 3.5, etc for Modes 2 & 4
  (To set up e.g. 1.5 in Soundshaper, type the amendment into the Edit box.)
DUR: Duration of the motion from edge to centre. 
  Min: 2 x Infile-length. (= minimum of 2 playings).
STEPS: Count of events from edge to centre (ONLY)  - NOT in Transit Sequence
  Range: 2-32767.
MAXANGLE (Modes 1-4): Maximum angle from centre line reached. 
  Range: 22.5 to 90 degrees
MAXDIST  (Mode 5):    Maximum distance from centre reached 
  Range: 1-1000 where half-radius = 1.   (??)
DEC: Gain reduction on passing from one event to the next 
  Range: >0 to <1.
MIXIN: (Transit Filt/DopFilt only) Progressive mix-in of infile2
  Range: 0-1

To extend the motion further, increasing the duration and the total number of events, 
the gain decrement can be modified with the following four optional parameters (NOT in Transit Sequence):
(THRESHOLD): Overall gain at which attenuation starts to increase.
(MAXLIM): Maximum limit (level) of attentuation after threshold reached (> ATTEN).
(MINLIM): Minimum overall level at which event ends (< THRESH).
(MAXDUR): Maximum duration from edge to centre in case MINLIM never reached (Min:2 x Infile; >= DUR).

OPTIONS
 Left motion: motion from Right to Left; default is Left to Right

NOTES
TRANSIT FILTERED /DOPPLER /DOPLFILT do NOT actually perform filtering or doppler-shifting, 
but simply assume that you will use suitably modified sources, as follows:

 In "FILTERED", sndfile2 would be a filtered version of the first, suggesting greater distance. 
  More of insndfile2 is gradually mixed in (MIXIN), with greater distance from the centre. 

 In "DOPPLER", sndfile2 would be a pitch-shifted version of the first, suggesting a doppler shift (apparent pitch change). 
  It changes to sndfile2 after centre is passed.

 In "DOPLFILT", sndfile2 would be a filtered version of the first, suggesting greater distance. 
  It gradually mixes in more of sndfile2, with   greater distance from centre. 
  Sndfile3 would be a pitch-shifted version of the first, suggesting a doppler shift. 
  It switches to sndfile3 after centre is passed. 
  Sndfile4 would be a filtered version of the third, suggesting greater distance.

[2217] Pairex
PAIREX extracts a stereo pair of channels from a multi-channel sound (>2 chans).
The pair are selected by channel number, with no spaces.

PARAMETER
CHANNELS: pair of channels entered as a single number with NO SPACES (e.g. 12, 25, 43 etc.)
  Range: 3 to number of channels
 
[2225] TransitList 
Not yet supported in Soundshaper. See TRANSIT for now.

[2281] [2282] CalcStretch
CALCSTRETCH (CDP: stretcha): calculate stretch factor

CALCSTRETCH is a utility to calculate the effect of a spectral timestretch/shrink (see TIMESTRETCH) on a sound. The program calculates either the number of beats for a given stretch, or a stretch factor for a given set of input and/or output data (drawn from duration, new-duration, current beats/tempo, new beats/tempo).  

A separate utility (CDP: stretch time Mode 2) calculates the output file-length for a given stretch factor (which may be time-varying).

Soundshaper separates CDP's STRETCHA program into two functions: one with a soundfile input (which provides the current duration) and one without (where you supply this duration).  Both functions are in the INFO menu. The Modes are set out according to the various combinations of possible input data:

SOUNDFILE IN (gives current duration):
MODES
1. Beats at new tempo: Calculate required no. of beats at new tempo.  
	Output: number of beats.   Param: New_tempo.  (Sndfile gives current duration.)
2. Stretch for new beats+tempo: Calculate stretch factor required for no. of beats at new tempo. 
	Output: stretch factor.    Params: New_beats and New_tempo. 
3. Stretch for new duration: Calculate stretch factor required for new duration.
	Output: stretch factor.   Param: New_duration.
- - - - - - - - - - - -
CDP stretch time 2:
4. New duration for given stretch: Calculate output duration for given stretch/shrink factor.
        Output: New duration. 	   Param: Stretch_factor (possibly T-V).


NO SOUNDFILE (user supplies initial duration)
MODES
1. Beats at new tempo (1): Calculate no. of beats at new tempo from current duration.
	Output: number of beats.   Param: Duration (i.e. initial length).
2. Beats at new tempo (2): Calculate no. of beats at new tempo from current beats/tempo.
	Output: number of beats.   Params: Beats and Tempo (initial)
3. Stretch for new beats+tempo(1): Calculate stretch factor for new beats/tempo from current dur.
	Output: stretch factor.    Params: Duration, New_beats and New_tempo
4. Stretch for new beats+tempo(2): Calculate stretch factor for new beats/tempo from current bts/tempo.
	Output: stretch factor.    Params: Beats,Tempo; New_Beats, New_Tempo
5. Stretch for new tempo:  Calculate stretch factor for new tempo from current tempo.
  	Output: stretch factor.    Params: Tempo, New_Tempo.
6. Stretch for new duration (1):  Calculate stretch factor for new duration from current duration.
	Output: stretch factor.    Params: Duration, New-duration.
7. Stretch for new duration (2):  Calculate stretch factor for new duration from current beats/tempo.
	Output: stretch factor.    Params: Beats, Tempo; New-duration.

PARAMETERS
DURATION: Current duration before stretch/shrink (secs)
BEATS: Current number of beats at given tempo (possibly fractional).
TEMPO: Current tempo (beats per minute).
NEW DUR: Duration of stretched sound (secs).
NEW BEATS: Number of beats at new tempo after stretch/shrink (possibly fractional) .
NEW TEMPO: New tempo after stretch/shrink (beats per minute).
- - - - - - - -
STRETCH: Stretch factor to be applied to input sound. (T-V) 
   
The output report is sent to the Report Window on the Main page, whose text can be copied or saved to file, as required. 

[2302] PeakFind
PEAKFIND (CDP: peakfind): find the times of peaks

PeakFind reports the times of peaks it finds in a soundfile; the key parameter is THRESHOLD, the level below which peaks are ignored in any time-window. If WINDOW is too small, it will track the waveform amplitude rather than the envelope (5-10ms is suitable).

The report is to a textfile, default name peaktimes.txt, which is also displayed in the Report Window.

PARAMETERS
WINDOW: size of window used to track signal level
  Range: 0-4327 ms (suggested 10 ms)
(THRESHOLD): level below which peaks are ignored in any window (normally set)
  Range: 0-1 (suggested 0.5)

[237]  Wave
WAVE (CDP: synth wave): synthesize basic waveform

WAVE synthesises one of several basic waveforms (see MODES) at a given length, frequency and (optionally) level. These are not much use as synthesis tools but have many potential uses as control signals: for example, imposing an envelope on another sound; extracting the envelope as a breakpoint file and using this as a datafile.

Soundshaper returns the output to an empty source cell (column 0); for this reason, start from an empty row on the Patchgrid.

MODES
1 Sine
2 Square
3 Triangle
4 Sawtooth

PARAMETERS
SAMPLE RATE: specify the sample-rate required
  Values:  96000, 48000, 24000, 44100, 22050, 32000, or 16000 Hz
  NB: the parameter fader permits other values which will not succeed.
CHANNELS: the number of output channels required
  Range: 1-16 (but >8 produces silence)
DURATION: length of output sound
  Range: 0.04-300 (secs); Full range: 0.04 to 7200 secs
FREQUENCY: of the outfile  (T-V)
  Range: 0.1-22000 Hz
(AMPLITUDE): output level (T-V)
  Range: 0-1 (default: 1)
(TABLE-SIZE): size of table storing the waveform 
  Range: 256-4096, multiple of 4 (default 256)

OPTION
 Floats: write soundfile as 32-bit floating-point; default is 16-bit integer

[2374] Clicknew - PROVISIONAL
CLICKNEW: CDP Rel. 8 - PROVISIONAL

CLICKNEW is a very simple program producing short clicks at the times specified in the CLICKTIMES data file. There is no variation in the length or volume of the clicks produced. The sample rate is set by SRATE.

One drawback of the program would be the requirement to specify every single time, but a looping playback, such as in Soundshaper, can repeat a cycle of times. 

PARAMETERS
CLICKTIMES: datafile of times to output clicks
  Range: 0-unlimited (secs.)
SRATE: Sample rate of output file
  RANGE: one of 16000, 22050, 32000, 44100, 48000, 88200 and 96000 (Hz)

NOTE: 
The program may be useful for creating a click-track of irregular times, in order to synchronise with some other sound. What this application might be (at least within CDP) is not yet clear though. Soundshaper markers, saved to a timesfile, can provide input to this process. 

[238]  Noise
NOISE (CDP: synth noise): generate white noise

NOISE synthesises white noise at a given length and (optionally) level. 
Soundshaper returns the output to an empty source cell (column 0); for this reason, start from an empty row on the Patchgrid.

PARAMETERS
SAMPLE RATE: specify the sample-rate required
  Values:  96000, 48000, 24000, 44100, 22050, 32000, or 16000 Hz
  NB: the parameter fader permits other values which will not succeed.
CHANNELS: the number of output channels required
  Range: 1-16 
DURATION: length of output sound
  Range: 0.04-300 (secs); Full range: 0.04 to 7200 secs
(AMPLITUDE): output level (T-V)
  Range: 0-1 (default: 1)

OPTION
 Floats: write soundfile as 32-bit floating-point; default is 16-bit integer

[2381] Synfilt R8
SYNFILT (CDP Rel. 8 - PROVISIONAL): Filtered noise with time-variable pitch(es) and Q (CDP8)

SYNFILT filters noise to create a time-variable single pitch (Mode 1) or a time-variable chord (Mode 2). Mode 1 (single pitch) uses a breakpoint daafile of Time and MIDI-pitch values, while Mode 2 (chord) uses the VARIBANK format of Time, Pch1, Amp1, Pch2, Amp2,... The output length is set by the last time value in this datafile. 

The filter tightness (Q) determines how noisy the output will be: a high value (e.g. 350) focusses mostly on the pitch(es) and less noise is present. Note that this is time-variable. 

Because white noise is randomly generated, the output is more naturally varied than some synthesis methods. You also specify the number of harmonics to generate for each pitch: care must be taken that these never exceed the Nyquist frequency for the sample rate (typically 11050Hz for 44100 Sample Rate). ROLLOFF shapes the decrease in amplitude from one harmonic to the next. 

There are two ways of introducing silence: one is by specifying MIDI-pitch 0 (more suitable for Mode 1), the other is by setting amplitude in Mode 2 to 0, which can be done for different pitches at different times, as required. As always with CDP, if you don't want a gradual change from one pitch to the next, insert a value just before the change that is the same as the previous value.

MODES
1 Single pitch
2 Chord

PARAMETERS
TIMEMIDI (Mode 1): breakpoint file of time and MIDI values
  Ranges: Time (secs) - no maximum, as the last time sets the output duration. Set X-limit in GraphEdit, if editing this graphially.
          MIDI -  0-127.00, where 60 = Middle C. 0 is effectively silent; fractional values are allowed
VARIBANKM (Mode2): datafile, lines of
  Time  MIDIPitch1 Amp1, (MIDIPitch2 Amp2... etc.)
  MIDIPitch and Amp values must be paired: any number of pairs can be used in a line, but each line must have same number of pairs.
  To eliminate a band in any line(s), set its amplitude to 0.0. 
  Times (in secs) must be in ascending order (and >=0.0). The maximum time must be greater than 0.03 secs (30mS).
  Amp values may be numeric (0-1), or dB values (e.g. -4.1dB).
  Comment-lines may be used: start these with ';'.
SAMPLE RATE: specify the sample-rate required   
  Values: 96000; 88200; 48000; 44100 (Hz)
OUTCHANS: Number of output channels (mono or stereo)
  Range: 1 or 2
Q: Sharpness of filter response; higher value is tighter (T-V) 
  Range: 0.001-10000 
HARMONICS: No. of harmonics of each pitch. Too many could exceed Nyquist freq.
  Range: 1 to 200 (Soundshaper: 1-8), default 1
ROLLOFF: amplitude decrease from one harmonic to the next 
  Range: 0 to -96 dB
SEED: initialises random-noise generation. 
  Range: 0 - 32767, default: 0

OPTIONS:
 Double filtering (emphasises the pitch more)
 Drop out if filter overflows  

NOTE: 
The CDP usage is misleading - the parameters are as above, in that order: the datafile is Param.1, Sample Rate is Param. 2, and so on. The supposed dur param. does not exist (duration is set by the datafile) and gain also does not exist, nor does the -n flag.

The link with VARIBANK (Mode 2) is significant, as you can employ an existing datafile (as used by VARIBANK filtering or TUNEVARY, for instance) and possibly fade from one process into the other using MIX BALANCE. SYNFILT's output can also be rhythmicised using VOCODE, CROSS or similar processes.

[239]  Silence
SILENCE (CDP: synth silence): generate a silent soundfile

SILENCE synthesises a silent soundfile of a given length. It is often necessart to insert silence into an existing soundfile; this can be done with PASTE.  
Soundshaper returns the output to an empty source cell (column 0); for this reason, start from an empty row on the Patchgrid.

PARAMETERS
SAMPLE RATE: specify the sample-rate required
  Values:  96000, 48000, 24000, 44100, 22050, 32000, or 16000 Hz
  NB: the parameter fader permits other values which will not succeed.
CHANNELS: the number of output channels required
  Range: 1-16 
DURATION: length of output sound
  Range: 0.04-300 (secs); Full range: 0.04 to 7200 secs

OPTION
 Floats: write soundfile as 32-bit floating-point; default is 16-bit integer

[2391] Chord
CHORD (CDP: synth chord): generate a chord

CHORD synthesizes a chord of sine-waves, using a list of frequencies. This is possibly of little use on its own, but it allows you to hear a harmony which you might use in e.g. VARIBANK for filtering or VOCODE. If the notes are harmonics, you can synthesise a tone of a specified richness.

MODES
1 Midi: data lists MIDI pitches
2 Freq: data lists frequency values

PARAMETERS
MIDIDATA (Mode 1): list of MIDI pitches (possibly fractional)
  Range: 0-127
FREQDATA (Mode 2): list of frequencies
  Range: 10 (?) to 22050 (?)
SAMPLE RATE: specify the sample-rate required
  Values:  96000, 48000, 24000, 44100, 22050, 32000, or 16000 Hz
  NB: the parameter fader permits other values which will not succeed.
CHANNELS: the number of output channels required
  Range: 1-16 
DURATION: length of output sound
  Range: 0.04-300 (secs); Full range: 0.04 to 7200 secs
(AMPLITUDE): output level (T-V)
  Range: 0-1 (default: 1)
(TABLE-SIZE): size of table storing the waveform 
  Range: 256-4096, multiple of 4 (default 256)


[2392] ADDSYNTH  (CDP7)
ADDSYNTH (CDP: Newsynth Modes 1,2): generate complex tones by additive synthesis
 
ADDSYNTH generates a waveform based on a predefined, and possibly time-varying spectrum. 
The SPECTRUM datafile is defined as 'time' and then a number of partial numbers, each followed by an amplitude in the range (0-1). The number of partials cannot change from one line to another. The partial number can be harmonic (e.g. 2) or inharmonic (e.g. 2.1) - except for the first partial (the fundamental), which must be 1. This flexibility allows both frequency and amplitude to be time-varying.

FREQUENCY gives the fundamental frequency, DURATION sets the output duration and SAMPLE-RATE sets the output sample-rate: these are all as in the more basic WAVE function.

Mode 2 further allows a NARROWING of each wave-cycle envelope (too high a value produces silence), which ultimately reduces to clicks, and a CENTRING of this envelope's peak on the start, middle or end of each cycle.  

MODES
 1 Addsynth: waveform based on additive synthesis
 2 Enveloped: as Mode 1, but each wavecycle enveloped (wave-packets)


PARAMETERS
SPECTRUM: Datafile of times, partial ratios and relative levels. On each line:
  TIME - times must start at zero and increase.
  PARTIAL-NUMBER - can be whole-number or fractional (e.g. 2.5); 1st one must be 1.
      Partial numbers must increase from entry to entry.
  LEVEL - relative to 1st value. Normal range -1 to 0 to +1; negative vals. invert phase
      Vals >1 and <1 also possible, as these are relative vals. 
  Same number of partials / levels on each line. 
  Example: 0.00  1 1.0  2 0.9  3 0.8  4 0.7 etc     
SAMPLE RATE: (Hz) Fixed values.
  Vals: 96000, 48000, 24000, 44100, 22050, 32000, or 16000 (? range not confirmed)
DURATION: length of output soundfile
  Range: 0.04 - 7200 secs. (Soundshaper: 0.1 - 300; may be exceeded at either end.)
FREQUENCY: fundamental frequency of the waveform
  Range: 0.1 to 22000 Hz.
(NARROWING) (Mode2): (>1) or broadening (<1) of packet envelope 
  Range: 0-1000; too high gives silence; vals near zero may produce clicks (square-wave envelope).
(CENTRING) (Mode2): Centring of wave-cycle envelope peak.
  Range: -1 to 0 to +1: 0  peak at centre: -1 peak at start: 1 peak at end.


NOTES
Mode 1 is like CSOUND's ADSYN, though possibly more flexible.
Several generated waveforms could be mixed together to create a more complex and less static output.
The function has potential in conjunction with the various tuning programs (TUNE, TUNEVARY, SUPERACCU), as input to GLIDE, VOCODE etc.


[2393] MCHSYNTH
MCHSYNTH (CDP: newsynth 3): multi-channel synthesis

MchSynth generates pulsed selections of the spectrum sent to a multichannel output. The initial parameters (SPECTRUM, SAMPLE RATE, DURATION and FREQUENCY) are as Modes 1 and 2. OUTCHANS is the number of output channels.  RATE determines the rhythmic timing for the output events. (It doesn't appear to be entirely regular...)

Each output event is a random selection of partials from the overall spectrum specified in SPECTRUM, and subject to octave-transposition over a maximum pitch range set in MAXRANGE. This range has an optional rise time to reach the maximum (UP) and fall time to subside from this (DOWN).  STEADY optionally sets a time for a steady state at the end of each sound-event. Each sound-event can optionally have a fixed number of partials (set in PARTIALS), as opposed to a randomly varying number.

SPLICE sets the length of splice slope for partial entry and exit; at 50ms maximum it is not long enough to create the fade-ins and outs described in the CDP usage message.  

Finally there is potential control of the spatial position of each event, if you specify 8-channel output, otherwise this is set randomly. The SPACETYPE parameter (also used elsewhere: ...?) specifies a veriety of spatial distributions and rotations.

PARAMETERS
SPECTRUM: Datafile of times, partial ratios and relative levels. On each line:
  TIME - times must start at zero and increase.
  PARTIAL-NUMBER - can be whole-number or fractional (e.g. 2.5); 1st one must be 1.
      Partial numbers must increase from entry to entry.
  LEVEL - relative to 1st value. Normal range -1 to 0 to +1; negative vals. invert phase
      Vals >1 and <1 also possible, as these are relative vals. 
  Same number of partials / levels on each line. 
  Example: 0.00  1 1.0  2 0.9  3 0.8  4 0.7 etc     
SAMPLE RATE: (Hz) Fixed values.
  Vals: 96000, 48000, 24000, 44100, 22050, 32000, or 16000 (? range not confirmed)
DURATION: length of output soundfile
  Range: 0.04 - 7200 secs. (Soundshaper: 0.1 - 300; may be exceeded at either end.)
FREQUENCY: fundamental frequency of the waveform.
  Range: 0.1 to 22000 Hz.
OUTCHANS: number of output channels. 
  Range: 2-16
MAXRANGE: Maximum range of transposition of spectral components (in whole octaves).
  Range: 1-8
RATE: Average time between changes to partial-content of output. 
  Range: 0.004 to 100 secs (Soundshaper range may be exceeded.)
(UP): Rise time to expand to maximum range. 
  Range: 0-100 secs (Soundshaper range may be exceeded.)
(DOWN): Fall time to return to initial range before end.
  Range: 0-100 secs (Soundshaper range may be exceeded.)
(STEADY): Duration of steady state at sound end. 
  Range: 0-3600 secs (Soundshaper range may be exceeded.)
(SPLICE): Length of splice slope for partial entry and exit. 
  Range: 2-50 msecs
(PARTIALS): Same fixed number of partials chosen for each event.
  Range: 0-1000 (Soundshaper 1-100; may be exceeded.)
(SPACETYPE): Type of output spatialisation 
  Range: 0=random; other vals only if OUTCHANS=8 - see values below
- - - - - - - - - - - - - - - -
These parameters may be set only if SPACETYPE > 0:
(ROTATION): Rotation speed
  Range:  +/- 20 Hz.
(FROM CHAN): Sound emerges from this channel-number at start, over "from time" 
  Range: 0 to no. of chans.; max 16
(FROM TIME): Sound emerges over this time, from the given channel "from chan" 
  Range: 0-infile-length (?) secs
(TO CHAN): Sound converges to this channel-number at end, over "to time" 
  Range: 0 to no. of chans.; max 16
(TO TIME): Sound converges over this time, to the given channel "to chan"
  Range: 0-infile-length (?) secs

OPTIONS
Initial Rise: in number of partials from only-the-fundamental.
Decrease partials: Fall in number of partials , during "steady state" to fundamental.
Exclusive: change all partials (as far as poss) from event to event
Move: Distribute partials in space.
Jump: All partials assigned to same location for any one event.

SPACETYPE: Set to 0 unless 8-channel output.
0   Spatial position set at random.

For 8-channel output only:
1   Positions alternate between Left and Right sides, but are otherwise random.
2   Positions alternate between Front and Back, but are otherwise random.
3   Rotating clockwise or anticlockwise.
4   Random permutations of all 8 channels.
5   ... plus all possible pairs of channels.
6   ... plus all possible meaningful small and large triangles.
7   ... plus square, diamond and all-at-once.
      In types 4 to 7, all members of perm used before next perm starts.
8   Alternate between all-left and all-right.
9   Alternate between all-front and all-back.
10  Alternate between all-square and all-diamond.
11  Rotate triangle formed by lspkrs 2-apart clockwise.
12  Rotate triangle formed by lspkrs 3-apart clockwise.
13  Rotate triangle formed by lspkrs 2-apart anticlockwise.
14  Rotate triangle formed by lspkrs 3-apart anticlockwise.

NOTES
Care must be taken, when specifying a wide range of transposition, that the fundamental is low enough, so that a high partial will not be specified that would fall above the Nyquist frequency (22050 Hz) - the program should really handle this sort of thing, but doesn't.  Otherwise, you may get an error message like this: "Partial 24.000000 at time 0.000000 (frq 1000.000000) is above the Nyquist (22050.000000)".

[2394] DUFFING  R8
DUFFING (CDP: newsynth synthesis 5) 

DUFFING is an experimental Duffing oscillator. Parameters are similar to ADDSYNTH with further amplitude (AMP) and coefficient parameters (K and B). 

PARAMETERS
SAMPLE RATE: (Hz) Fixed values.
  Vals: 96000, 48000, 24000, 44100, 22050, 32000, or 16000 (? range not confirmed)
OUTLENGTH: length of output soundfile
  Range: 0.04 - 7200 secs. (Soundshaper: 0.1 - 300; may be exceeded at either end.)
FREQUENCY: frequency of forcing oscillation
  Range: 1.0 to 200 Hz.
DAMPING: Damping of forced oscillation.
  Range: 0.15 to 2 T-V
K, B:  Coefficients determining the nature of the damping. [not clear what they do - RF]
  K Range: -10 to +10 
  B Range: 20-50

NOTES
Damping seems to have no effect? 

[2395] SynFract R8
SYNFRACT (CDP Rel 8.  PROVISIONAL): Fractally arrayed spikes.

SYNFRACT is a new (in CDP8) mode of newsynth (mode 4). The waveform consists of spikes distributed fractally over the wavelength and the output is a buzzy tone, presumably due to the added spikes and fractalisation of the waveform.

The CDP usage provides a useful diagram which helps to explain the parameters:
Spike placement frame
 _________wavelen__________
|                          |
 ___grouplen____
|               |
 1/2 grouplen
 _______
|       |
 _a_     _a_    |
|   |   |   |   |
|   |_b_|   |_b_|__________
                  trailing
                | silence  |

Each wave is divided into two portions - a group-length followed by a trailing silence. The group-length is subdivided into two ON-OFF blocks "a" and "b". The ratio between these is set by ONRATIO, while GRPRATIO sets the ratio of the grouplength to the overall wavelength and hence determines the length of the trailing silence. The ON blocks are subdivided in the same proportions iteratively and spikes are placed at the start of each ON block in the subdivision. The optional FRACTLEVL determines the level at which positive and negative values are switched. Finally, optional RAND randomizes the position of the second ON segment, in relation to the grouplength end, but must not be used with the OPTION, which places the second ON block at the grouplength end.

Other synthesis parameters must also be set: sample rate, output duration, frequency, length of spike attack and envelope rise, length of spike decay and envelope decay. Note that many frequencies are rejected as too high, for reasons beyond explanation. (Reducing SPIKEATK and SPIKEDEC seems to help.) As so often with CDP, many parameters to play with and a specialist model to understand; but in the end the result is just a buzzy tone. 


PARAMETERS
SAMPLE RATE: (Hz) Fixed values.
  Vals: 96000, 48000, 24000, 44100, 32000, 22050
OUTLENGTH: Duration of output soundfile 
  Range: 0.04 to 7200 seconds 
FREQUENCY: of output soundfile 
  Range: 0.001-10000 Hz
SPIKEATK: Length of spike attack
  Range: 0-16 samples
SPIKEDEC: Length of spike decay
  Range: 0-16 samples 
ENVRISE: Rise curve of attack   
  Range: 0.25 to 4.0 < 1 rise slow-then-fast : >1 fast-then-slow.
ENVDECAY: Fall curve of envelope decay 
  Range: 0.25 to 4.0 > 1 fall fast-then-slow : <1 slow-then-fast. 

Spike-placement parameters
---------------------------
ONRATIO: Ratio of on-time (a) to 1/2-grouplen (see diagram) in grouplen.  (CDP: ATOH)
     (which determines relative length of "a" (ON) and "b" (OFF).
  Range: 0.1 to 1.0
GRPRATIO Ratio of group-length to total-wavelength.                       (CDP: GTOW)  
  Range: 0.1 to 1.0
(FRACTLEVL):  Alternate "a" blocks in waveform are assigned +ve and -ve values.
     FRACTLEVL determines at which fractal level this +/- switch takes place.
     Level 0 uses the large blocks in the uppermost (slowest) level.
     NB Maximum level of FRACTLEVL will depend on various other parameters.
     If set too high it will be reset to the max fractal level achievable with the current parameters.
  Range: 0-256
(RAND): Subdivision places 2nd "a" segment randomly between its true position & grouplength-end.
  NOT WITH OPTION 
  Range: 0-1 

OPTION
 Subdivision places 2nd "a" at END of grouplength.
     (OPTION and RAND cannot be used together).


NOTE:
A common error message is: "Cannot proceed with these parameters (frq possibly too high)".


[2396] Impulse - PROVISIONAL
IMPULSE - CDP Rel 8. - PROVISIONAL

IMPULSE synthesizes a pulse wave, though with some quirks in the parameter settings. A pulse wave is a series of short pulses, which become a continuous pitch if fast enough (e.g. MIDI 24). To hear individual pulses, set PITCH to a very low MIDI value (e.g. 20 or below). However, the MIDI PITCH value is not the only one to determine the output pitch. OUTCHANS (number of output channels) doubles it for stereo and raises it by another octave for quad. GAPSIZE (optional) lowers the pitch  - larger gaps between pulses means lower frequency - while a gapsize of less than 0 raises it.   

Three parameters affect the timbre of the pulses: 
 the SLOPE, which determines the steepness of each impulse's rise and fall; higher value is brighter
 PEAKS, which brightens the timbre and, when high enough, also raises the perceived pitch
 CHIRP - adds buzz to the sound

PARAMETERS
OUTLENGTH: the required output duration
  Range: 0-7200 secs; 0 creates a single impulse
OUTCHANS: the number of output channels required
  Range: 1 to 8 (>1 raises the pitch to a harmonic of the PITCH)
PITCH: frequency of the impulse stream, giving the basic MIDI pitch (for one channel)
  RANGE: 1 to 127, possibly fractional (T-V)
CHIRP: Glissing of impulse (may clip output)
  Range: 0 to 30  (T-V)
SLOPE: rise and fall of each impulse - sharper slope gives brighter timbre
  Range: 1 to 20 (T-V)
PEAKS: number of peaks in the impulse
  Range: 1 to 200
LEVEL: overall output level
  Range: 0 to 1 (T-V)
(GAPSIZE): gaps between impulses. >0 lowers the pitch; <0 raises it
  Range: -0.99 to + 10 
(SRATE): sample rate; default is 44.1 KHz if not set
  Range: 16000, 22050, 32000, 44100, 48000, 88200, 96000 only

NOTES:
There is reference in the CDP usage to a GLIS parameter. 
PEAK count divided by stream-freq. gives the (unglissed) freq of impulses.

[2397] MultiOsc - Provisional
MULTIOSC - CDP Rel 8. - PROVISIONAL

MULTIOSC creates FM-style nested oscillations from a wavetable. In Mode 1 (oscillation of oscillation), a wavetable is frequency modulated (FREQ2). In Mode 2 (oscillation of oscillation of oscillation), Mode 1's modulations are themselves modulated  - by FREQ3. In Mode 3 (oscillation of oscillation of oscillation of oscillation), Mode 2's modulations are modulated - by FREQ4. The driving frequency (FREQ) and all the other FREQs can be time-varying.

It's not clear whether the AMPs can be time-varying, which would envelope the sound. The program does give an output if (say) AMP2 is a breakpoint file, but the result invariaby seems to be white noise.
 

MODES
1 Osc of osc
2 Osc of osc of osc
3 Osc of osc of osc of osc

PARAMETERS
SAMPLE RATE  Sample rate of synthesized sound.
  Range: one of 16000, 32000, 22050, 44100, 88200, 24000, 48000, 96000  
OUTLENGTH    Duration of synthesized sound, or textfile output (not implemented yet in SSH).
  Range: 0 to 32767 secs (Soundshaper range: 0-120", default 10")
SPLICE       Length of splice of start and end of output sound (mS).
  Range: 1 to 50 mS, default 15mS
FREQ         Driving frequency of output (T-V).
  Range: 0.1 to 22000
FREQ2, 3, 4  Nested oscillations of table read (T-V).
  Range: 0.1 to 22000
AMP2, 3, 4   Amplitude of suboscillations 
  Range: 0 - 1


[2398] Synspline (R8)
SYNSPLINE (CDP Rel.8 - PROVISIONAL)
SynSpline smoothly connects randomly generated points to create a constantly changing synthetic waveform. SPLINECOUNT sets the number of points to create per half-cycle, while MAXSPLINE sets an upper range for this value - the actual value being between SPLINECOUNT and MAXSPLINE; both of these are also time-variable.

The wavecycles morph (change shape) over a number of cycles. This is set by INTERPOLATE; again, the actual value is between this and MAXINTERP and, again, bth are time-variable.

Optional parameters PITCHDRIFT and DRIFTRATE set an amount of pitch variation and the rate of pitch drift. Minute changes of pitch are also an important factor in synthesising "realistic"-sounding tones. 

The level of each cycles is also set randomly, with an option to normlalize all cycles evenly.

PARAMETERS
SAMPLE RATE:
  Range: 16, 22.05, 32, 44.1, 48, 64, 88.2, 96 KHz (not all tested) 
OUTLENGTH: the output duation required
  Range 0.04-7200 secs
FREQUENCY: Output frequency required
  Range: 0.001 to 10,000 Hz (T-V)
SPLINECOUNT: no. of random values to smooth between, per half-wavecycle 
  Range: 0 to 64 (T-V)
MAXSPLINE: values are generated randomly between SPLINECOUNT and MAXSPLINE 
  Range: 0 to 64; >=SPLINECOUNT  (T-V)
INTERPOLATE: no. of wavecycles over which to interpolate as one waveshape morphs to the next.
	A larger value gives a slower rate of change.
  Range: 0 to 4096 (T-V)
MAXINTERP: values are generated randomly between INTERPOLATE and MAXINTERP 
  Range: 0 to 4096; >=INTERPOLATE
SEED: the same seed value will produce identical output with the same parameters 
  Range: 0 to 64
PCHDRIFT: semitone half-range of random drift in frequency (up and/or down)
  Range: 0 to 12 semitones
DRIFTRATE: average time to the next drift offset; the true time is 1/2 to 3/2 of this. 
  Range: 1 to 1000 mS

OPTION: normalize wavecycles to the same level. Default: change level randomly

NOTES
Wavetable synthesis has a long history, epsecially in computer music: in its simplest form an unchanging table of values representing a waveform is repeated N times a second. The static nature of such sounds makes them sound "electronic", whereas real instruments have constantly changing waveforms (even in a mechanical instrument like the pipe organ). SynSpline achieves this variety by generating points at random and smoothly joining them together. There is considerable scope within the program for altering the rate and extent of the variation. 

Overall, the sounds are rather bright and might benefit from some filtering, as well as envelope control. Either of these may be added in Soundshaper in the future. 




[250] PchTrace  NO PARAMS
PCHTRACE (CDP: ptobrk) extracts a breakpoint pitch file (.pch) in a form suitable for pitch-synchronous grain operations (PSOW), which are intended for pitched sounds with formants - normally vocal. In Soundshaper this function is built into all PSOW processes, so may not be needed as a standalone operation. However, it produces a very detailed pitch analysis in time-frequency pairs, which may be of use in other functions too.


[251]  PSStretch
PSSTRETCH (CDP: psow stretch): timestretch using pitch-sync grains

The PSOW suite manipulates "pitch-synchronous grains" (see NOTES). PSSTRETCH timestretches/shrinks a sound by repositioning the pitch-synchronised grains. The grains themselves are not time-stretched. The process time-stretches the sound and changes the pitch (like SPEED) but preserves the vowel formants. 

TIMESTRETCH sets the amount of stretch or shrinkage. GRAINS sets the number of grains in a chunk to be retained without change, while gaps between segments are stretched. According to CDP Help, GRAINS is best set at 1 for realistic results. 

PARAMETERS
TIMESTRETCH: Proportion by which sound is stretched (>1) or shrunk(<1). 
  Range 0.1-10.0 
GRAINS: Number of grains in segment left unchanged - segment gaps are stretched 
  Range 1-256 

NOTES
FOFs are overlapping grains used to simulate the voice. The PSOW assumes that a vocal sound might have such grains and attempts to find and manipulate them. The functions work only with mono vocal sounds, and other sounds are liable to cause them to "hang". Soundshaper's implementations are composite functions, incorporating the required pitch-trace.

[252]  PSStrTrans
PSSTRETCH (CDP: psow strtrans): timestretch and transpose pitch-sync grains

The PSOW suite manipulates "pitch-synchronous grains" (see NOTES). PSSTRTRANS is similar to PSSTRETCH: the process timestretches a sound, without changing vowels. Each FOF is individually repeated and hence, with many repeats, the process produces artefacts similar to waveset duplication. The pitch can also be independently transposed without changing the vowels. This parameter interacts with TIMESTRETCH in unpredictable ways.


PARAMETERS
TIMESTRETCH: Proportion by which sound is stretched (>1). 
  Range 1.0-10.0
GRAINS: Number of grains in segment left unchanged - segment gaps are stretched 
  Range 1-256
TRANSPOSE: Number of semitones to transpose by. 
  Range -24 to +24 (semitones; fractions allowed).
 

NOTES
FOFs are overlapping grains used to simulate the voice. The PSOW assumes that a vocal sound might have such grains and attempts to find and manipulate them. The functions work only with mono vocal sounds, and other sounds are liable to cause them to "hang". Soundshaper's implementations are composite functions, incorporating the required pitch-trace.

[253]  PSDupl
PSDUPL (CDP: psow dupl): duplicate pitch-sync grains

The PSOW suite manipulates "pitch-synchronous grains". (see NOTES). PSDupl timestretches by repeating the grains in a segment: the segment can consist of 1 or more grains. A low number of grains in each segment gives a smoother result, while increasing the number gives a more granulated result.

PARAMETERS
REPEATS: Number of repetitions in each segment 
  Range: 2-100
GRAINS: Number of grains in each segment 
  Range: 1-256

NOTES
FOFs are overlapping grains used to simulate the voice. The PSOW assumes that a vocal sound might have such grains and attempts to find and manipulate them. The functions work only with mono vocal sounds, and other sounds are liable to cause them to "hang". Soundshaper's implementations are composite functions, incorporating the required pitch-trace.

[254] PSDelete
PSDELETE (CDP: psow delete): timeshrink by deleting pitch-synchronized grains

PSDelete timeshrinks a vocal sound by deleting pitch-synchronized grains (see NOTES). GRAINS is the number of grains in each segment and KEEP sets the proportion to retain in the segment.

PARAMETERS
KEEP: Proportion of segments to retain: e.g. 4 keeps 1 in every 4  
  Range: 2-20
GRAINS: Number of grains in segment
  Range: 1-256

NOTES
The PSOW suite manipulates "pitch-synchronous grains". FOFs are overlapping grains used to synthesise vocal sounds. The PSOW assumes that a vocal sound might have such grains and attempts to find and manipulate them. The functions work only with mono vocal sounds, and other sounds are liable to cause them to "hang". Soundshaper's implementations are composite functions, incorporating the required pitch-trace. (However, the composite batch file does not have a stereo or m-c equivalent, so the infile must be mono.)

[255] PSFeatures
PSFEATURES (CDP: psow features): impose new features by modifying pitch-sync'd grains

PSFeatures imposes a selection of features on pitch-synchronized grains in a mono vocal sound (see NOTES), or modifies the grains themselves. There is a small distinction between Modes 1 and 2: Mode 1 transposes by speed, while Mode 2's transposition does not change the timeframe of the sound but may introduce octaviation or other double-pitch features. 

SPECTRANS transposes the spectrum above the fundamental (which doesn't change). Limited vibrato can be added (VIBFREQ and VIBDEPTH).  HOARSENESS appears to convert pitch into noise (a piano note turned into a quasi-gunshot).

Subharmonics of the fundamental can be generated with SUBHARMONIC (2-8). For example, 2 divides the fundamental pitch by 2, producing a pitch an octave lower, 3 divides it by 3, producing a pitch an octave and a 5th lower and so on. SUBLEVEL sets the level of the subharmonic. 

The grains themselves can be stretched (FOFSTRETCH), producing an effect akin to reverberation. This does not stretch the sound itself. 

MODES
 1 Transpose by speed, also stretching/shrinking time.
 2 Transpose, adding lower pitch.

PARAMETERS
GRAINS: Number of grains in segment that are retained unchanged
  Range: 1-256
TRANSPOSE: Mode 1 is transposition by speed;  Mode 2 adds a lower pitch 
  Range: -48 to +96 semitones
VIBFREQ: Frequency of any added vibrato
  Range: 0-20 Hz.
VIBDEPTH: depth of any added vibrato.
  Range: 0-3 semitones
SPECTRANS:  amount of transposition of the spectrum in semitones (does not change fundamental pitch).
  Range: -24 to +24 semitones
HOARSE: Add hoarseness to vocal sound
  Range: 0-1
ATTEN: overall attenuation - use to avoid overflow with FOFSTRETCH 
  Range: 0-1
SUBHARMONIC: Divide fundamental to create subharmonic 
  Range: 0-8; 0-1 has no effect.
SUBLEVEL: Level of any subharmonic introduced 
  Range: 0-1
FOFSTRETCH: Time-extension of FOFs: does NOT stretch sound 
  Range: Range 1 to 4096

NOTES
The PSOW suite manipulates "pitch-synchronous grains". FOFs are overlapping grains used to synthesise vocal sounds. The PSOW assumes that a vocal sound might have such grains and attempts to find and manipulate them. The functions work only with mono vocal sounds, and other sounds are liable to cause them to "hang". Soundshaper's implementations are composite functions, incorporating the required pitch-trace. (However, the composite batch file does not have a stereo or m-c equivalent, so the infile must be mono.)

Some experience with the LOOP process may help to explain the basic concepts. A tiny loop functions as a small grain which is stepped through the sound. The time-gaps between the overlapping grains (depending on grainsize and step) produces a resonance. Similarly, FOFs are overlapping enveloped grains which are repeated to produce a resonant frequency corresponding to a vocal formant. 

[256]  PSSustain
PSSUSTAIN (CDP: psow sustain): freeze on specified pitch-sync'd grain

PSSustain freezes & sustains a (vocal) sound on a specified pitch-synchronized grain. Either a single grain, or a segment of multiple grains, is expanded. GRAINS sets the size of the segment, in number of grains. 

FREEZETIME sets the time at which the freezing takes place: the sound is played up until this point; then it is frozen, with the option of vibrato and/or transposition in that section; finally it plays to the end of the sound. DURATION sets the overall outfile-length and hence the length of the freeze. VIBFREQ and VIBDEPTH control any added vibrato.  The TRANSPOSITION and GAIN parameters were added in CDP Release 6. The smoothest results are achieved by using the Smooth FOFs option. 

PARAMETERS
FREEZETIME: Time in file at which to freeze grain(s)
  Range: 0 - infile-length (secs)
DURATION: Length of outfile required 
  Range: >infile to 32767 secs
GRAINS: Number of grains in segment 
  Range: 1-256
VIBFREQ: Frequency of any added vibrato 
  Range: 0-20 Hz.
VIBDEPTH: Depth of any added vibrato 
  Range: 0-3 semitones
TRANSPOSN: Transposition of grain  T-V
  Range: -48 to +24 semitones. If T-V, time=0 is start of expanded grain
GAIN: overall output loudness
  Range: 0-1-10  (1=unity gain <1 lowers,>1 raises level)
 
OPTION
 Smooth FOFs: Smooth the grabbed grain(s)

[257]  PSSustain2
PSSUSTAIN2 (CDP: psow sustain2): freeze on specified pitch-sync'd grain

PSSustain2 is similar to PSSUSTAIN, which freezes & sustains a (vocal) sound on a specified pitch-synchronized grain. 
In PSSustain2 you specify the STARTCUT and ENDCUT times of the grain (or segment of grains). Larger durations between STARTCUT and ENDCUT may produce clearly repeated chunks, e.g. groups of words. 

The NUDGE parameter shifts the position of the sustained grain slightly.

PARAMETERS
STARTCUT: Start-time in file at which to cut grain
  Range: 0 - infile-length (secs)
ENDCUT: End-time in file at which to cut grain
  Range: 0 - infile-length (secs)
DURATION: Length of outfile required 
  Range: >infile to 32767 secs
VIBFREQ: Frequency of any added vibrato 
  Range: 0-20 Hz.
VIBDEPTH: Depth of any added vibrato 
  Range: 0-3 semitones
NUDGE: Move selected grain position by 'nudge' zero-crossings 
  Range: -24 to +24

NOTES
You can produce phasing effects by creating several outputs, each with a slightly different nudge amount, and then mixing them together (with the same start time in the mix). 

[258]  PSPartials
PSPARTIALS (CDP: psow reinforce): add harmonics or inharmonic partials using pitch-sync'd grains (not M-C)

PSPartials attempts to reinforces partials in the (vocal) sound by overlaying pitch-synchronized grains in particular ways. The datafile PARTIALS contains paired values of harmonic_number and amplitude (Mode 1). In Mode 2, the partial numbers can be fractional, producing inharmonic spectra from pitched sounds. Mode 2 introduces the option of sustaining partials (SUSTAIN parameter).

MODES
 1: Add harmonic partials to the sound
 2: Add inharmonic partials the sound.

PARAMETERS
PARTIALS: Datafile of pairs of 
   Harmonic No. (may be fractional in Mode 2, e.g. 1.2) 
     Range: 2-256); 
   Level, relative to source 
     Range: >0 - 16.0
(DELAY): delay the start of added harmonics
  Range: 1-500 ms
(SUSTAIN - Mode 2 only) Sustain partials: a higher value = a longer sustain 
  Range: 0-10, default 4.0; high values may give overflow

OPTION
 No duplicated FOFs: omit grains for higher harmonics that coincide with those of lower ones.

NOTES
PARTIALS is shown in Soundshaper as a .brk file, so that it may be edited graphically; however, the values are not true breakpoint values, in not being interpolated from one value to the next.

[259]  PSSpace
PSSPACE (CDP: psow space)
PSSpace splits alternate pitch-synchronized grains spatially, creating subharmonics. The output is in stereo.
 
Alternating grains spatially is like having 2 separate sound-streams, each at half the original pitch, so that the pitch drops by an octave. The SUBHARMONIC number allows you to drop the pitch further, dividing the frequency by 3 (down an 8ve+5th), 4 (two 8ves), 5 (two 8ves+maj.3rd), etc. The output sound is lower but not longer. 

SEPARATION determines the degree of spatial separation:. With a value of 0, the grains are at the centre, hence there is no pitch-shift. 1 places the alternate grains at the extreme right and left, in that order, while -1 places them at the extreme left and right, in that order). Intermediate values give intermediate degrees of spatial separation.

BALANCE determines the relative loudness of the signals on left and right speakers. 1.0 sets an equal balance in both speakers; for values >1, the level on the left is lowered by dividing the signal by the value of BALANCE; for values <1, the level on the right is increased by multiplying by the value of BALANCE. 

HISUPRESS muffles the sound by suppressing high-frequency components.

PARAMETERS
SUBHARMONIC number: divides frequency of the source 
  Range: 2-5
SEPARATION: Spatial separation 
  Range - 1 to +1 (-1 left to 0 centre to +1 right)
   0: no separation, all output is stereo-centred
   1: alternate grains go to the widest spread, starting with the far right position.
   -1: alternate grains go to the widest spread, starting with the far left position.
BALANCE of left-right components 
  Range: 0.001-1000; 1 equal; <1 bias to left; >1 bias to right
   1.0: the left and right levels are equal
   > 1: the left signal is divided by balance: bias to the right
   < 1: the right signal is multiplied by balance: bias to the left.
SUPPRESSHI: Degree of suppression of high-frequency components
  Range: 0-1
 
[260]  PSSplit
PSSPLIT (CDP: psow split)

PSSplit splits vocal pitch-synchronized grains (FOFs) into subharmonic and upwardly transposed pitch. The pitch is transposed up (UPTRANS parameter) without changing the timeframe or the vowels; the process also adds a subharmonic frequency (SUBHARMONIC parameter). BALANCE controls the balance between these two.

PARAMETERS
SUBHARMONIC: Subharmonic number - divides frequency of source.
  Range: 3-8
UPTRANS: upward transposition 
  Range: 0-48 semitones
BALANCE: Balance of transposed components relative to subharmonic. 
  Range: 0 to 1 to 8; 1 is equal

[261]  PSLocate
PSLOCATE (CDP: psow locate): find time-specified nearest pitch-synchronized grain

PSLocate finds the start of the pitch-synchronous grain nearest to the specified time. It reports to the Report Window. If the source is not a suitable one (e.g. if not vocal), the process "hangs" without reporting an error.

Typical output -  
INFO: TIME 0.437000 IS NEAREST GRAIN START 0.437778

PARAMETER
TIME: time in file at which to find the start of a grain
  Range: 0 - file-length

[262]  PSGrab
PSGRAB (CDP: psow grab): grab pitch-synchronized grainor groups of grains

Granular sustain: PSGRAB grabs a group of grains at the specified time and prolongs it by repetition for a given outfile time. Around 50 grains or more are recommended - a small number produces a hiss - and some gain reduction is also advisable. Applied to a steady musical note, this can be an effective way of prolonging the sound over any length, though processing may take some time. Experiment with short lengths first.

SPECTRANS transposes the spectrum above the fundamental (which doesn't change). RAND introduces noise by randomising grain s/ segment positions.
 
PARAMETERS
TIME: time in file at which to grab the grain or chunk
  Range: 0- file-length
OUTLENGTH: Length of outfile required 
  Range: 0 to 32767 secs; 0 grabs single grain/chunk
GRAINS: Number of grains in segment 
  Range: 1-256
DENSITY: Grain separation (<1) or overlap (>1); 1: no overlap 
  Range: 0.01-100
SPECTRANS: Transposition of spectrum (fundamental is unaffected). 
  Range: 0.125 to 8  (NB: 0 for no transposition is not accepted.)
RAND: randomise grain/chunk positions - introduces noise
  Range: 0-1
GAIN: Amplitude adjustment applied to the output. 
  Range: 0-1 (1= full amplitude).

NOTE: PSGRAB must be run (with OUTLENGTH =0) to extract two grain groups to be interpolated by PSInterp. A small size for GRAINS produces a continuous tone, while a larger size (e.g. >50) gives a recognizable chunk which will morph into the grain group extracted from a second sound.
  
[263]  PSCut
PSCUT (CDP: psow cut): Cut file at time of specified pitch-synchronized grain
PSCut cuts the file at a specified pitch-synchronized grain. The files are cut at zero-crossings in the signal, and can hence be joined together without splices.

MODES
 1 Discard after cut: retain the file BEFORE the specified grain time. 
 2 Discard before cut: retain the file AT and AFTER the specified grain.

PARAMETER
TIME: time in file at which to cut
  Range: 0- file-length.

[264]  PSChop
PSCHOP (CDP: psow chop): cut sound into sections based on pitch-synchronized grains (MULTI-OUTs: MONO)
*** PSChop appears not to be working in Soundshaper ***  See Workaround, below

PSChop extracts separate files, based on pitch-synchronized grains. The sole parameter CHOPS is a datafile of time-graincount, specifying the chunks to be extracted. The aim is to allow selected portions of a sound to be processed and not others; the extracted portions could either be those that were processed or those that were not.  

PARAMETERS
CHOPS: datafile (chops.brk) of TIME - GRAINCOUNT
  N.B.
TIME is the time of the grain where the file is cut. The file is automatically cut at a start-of-grain boundary. The next segment begins after the specified grain-chunk.
GRAINCOUNT is the number of grains in the chunk, at a specified time, before the next cut-section starts. Recommended values are very low, e.g., 1 or 2. Values greater than 1 will result in granulated outfiles, often the desired result.

NOTES
*** PSChop will be investigated and possibly fixed in the next release. The process appears to "hang"; whether this is a CDP fault or a glitch in Soundshaper's implementation is not known.

WORKAROUND: Copy the infile across several rows; use PSCut to make pitch-synchronized cuts at desired points. (Two PSCuts may be needed to extract a segment.) Process and re-assemble chunks, using SPLICE=0, as recommended in CDP Help. 

[265]  PSImpose
PSImpose (CDP: psow impose): impose pitch-synchronized grains on 2nd sound

PSImpose attempts to impose pitch-synchronized grains from one soundfile onto another. Unusually for CDP, the imposing sound is Infile1 and that being imposed upon is Infile 2. The output (cell following Infile 1) predominantly reflects the content of Infile 2, though the outfile length is approximately that of Infile 1.  

DEPTH sets the degree to which the 2nd soundfile is affected. WINDOW_size sets the length of the segments in the second soundfile to use to determine amplitude. Longer lengths mean less resolution, i.e., less responsiveness to changes of amplitude. (Given that this parameter also dominates envelope functions and that 5ms is the default there, a value of 5 or 10ms may be suitable.)

GATE sets a level in the 2nd sound (in dB) below which signal is ignored. If set too high (too close to 0dB), there may be no output at all. (This parameter seems a curious inclusion, as you might expect the function just to process all the sound.)

*** NOTE: this process may take a relatively long time. 

PARAMETERS
DEPTH: Depth of application of FOFs to the second sound
  Range: 0-1
WINDOW: Window size used to track envelope of second sound 
  Range: 1 to 200ms
GATE: Level in 2nd sound below which it is assumed to be zero 
  Range: -96 to 0 dB

[266]  PSInterleave
PSINTERLEAVE (CDP: psow interleave): interleave pitch-synchronized grains

PSInterleave interleaves pitch-synchronous grains from two soundfiles: i.e. the process alternates (groups of) FOFs from two different sounds. GRAINS sets the number of grains in each group (segment). 

The other parameters control the relative importance of one file over the other. BIAS determines to what extent the output pitch is biased towards the pitch of one file (>1) or the other (<1). BALANCE similarly skews the level towards the first file (>1) or the second (<1). WEIGHT determines the relative number of FOF components from the 2 sources: nore from the first (>1) or more from the second (<1). 

PARAMETERS
GRAINS: Number of grains in each segment
  Range: 1-16
BIAS:  Degree of pitch bias towards 1st file (>0 to 1) or 2nd file (<0 to -1)
  Range: -1 (biased to 2nd) to +1 (biased to 1st). 
BALANCE: level balance of components - 1st louder (>1); 2nd louder (<1)
  Range: 0.01 to 100 (1 = equally loud)
WEIGHT: relative no.of components - More of 1st(>1); more of 2nd(<1)
  Range: 0.621 to 16

NOTES
 For now, Infile 2 must be a MONO .wav file
 In Soundshaper, you should select two vocal (or clearly pitched) sources that have been tested with a simple PSOW process like LOCATE. Then, choose Infile 2 by clicking on its cell -- Soundshaper handles the required pitch-trace files.

[267]  PSReplace
PSREPLACE (CDP: psow replace): combine pitch-synchronized grains

PSReplace combines the pitch-synchronous grains (FOFs) of the first sound with the pitch of the second. It is assumed that both files have pitched grains.  GRAINS, the only parameter, sets the number of grains in a group (segment). The outfile length is approximately that of Infile 1. 

PARAMETERS
GRAINS: Number of grains in each segment
  Range: 1-16

NOTES
 For now, Infile 2 must be a MONO .wav 
 In Soundshaper, you should select two vocal (or clearly pitched) sources that have been tested with a simple PSOW process like LOCATE. Then, choose Infile 2 by clicking on its cell -- Soundshaper handles the required pitch-trace files.

[268]  PSInterp
PSINTERP (CDP: psow interp): interpolate between 2 pitch-sync'd grains

PSInterp morphs (interpolates) between a group of grains taken from the first sound via PSGRAB and one similarly taken from a second sound. For each sound, run PSGRAB first, with OUTLENGTH=0 and set GRAINS for the size of the group. The second sound can in fact be the same as the first - either load the same sound twice or copy the first sound to the second (e.g. A_0 to B_0). (Note that if the infiles are not the result of PSGRAB, you will get an error message.)  

The length of interpolation between the two grains is the key parameter (INTERPOLATION). The initial grain can be sustained (STARTDUR), as can the second one (ENDDUR). Vibrato (VIBFREQ and VIBDEPTH) and tremolo (TREMFREQ and TREMDEPTH) can be added if desired.

If the grain group size (set in PSGRAB) is small you will get a continuous sound; roughly 50 grains or more will give a chunk that repeats and morphs. A small size for sound 1 and a larger one for sound 2 should produce an emerging chunk.

PARAMETERS
STARTDUR: Duration to sustain initial grain 
  Range: 0-32767 secs

INTERPOLATION: Duration of interpolation 
  Range: 0-300 secs. Full range: 0-32767 secs
ENDDUR: Duration to sustain final grain
  Range: 0-300 secs. Full range: 0-32767 secs
VIBFREQ: Frequency of any added vibrato 
  Range: 0-20 Hz.
VIBDEPTH: Depth of any added vibrato 
  Range: 0-3 semitones
TREMFREQ: Frequency of any added tremolo 
  Range: 0-30 Hz.
TREM DEPTH: depth of any added tremolo 
  Range: 0.000002 to 10

[269]  PSSynth
PSSYNTH (CDP: psow synth): impose pitch-synchronized grains on a synthesized sound

PSSynth is an experimental program which attempts to impose a stream of pitch-synchronized grains (FOFs) on a synthesized sound. The grains are taken from Infile 1, while the synthesised sound can be specified in a variety of ways: Mode 1 uses a datafile of freq - amp pairs; Mode 2 uses MIDI-pitch - amp pairs; Modes 3 and 4 follow the two VARIBANK formats, with a row of freq - amp or MIDI-pitch - amp values preceded by a time. Finally, Mode 5 imposes the grains onto synthesised noise.

DEPTH controls the degree to which the effect is applied.  

MODES
All: Impose infile's pitch-synchronised grains on a synthesised sound
 1: Freq-amp format (using datafile OSCILF)
 2: MIDI-amp format (using datafile OSCILM)
 3: Varibank freq. format (using datafile VARIBANKF)
 4: Varibank MIDI format (using datafile VARIBANKM)
 5: Noise (no datafile)

PARAMETERS
OSCILF (Mode 1): Datafile of freq/amp pairs; 1 pair per line
  Range: Freq: 0.1 to 11025; Amp: 0-1
Example:		
{Freq	Amp}	
200	0.4		
400	0.5		
800	0.6		
1000	0.7		
2000	0.8
4000	0.9

OSCILM (Mode 2): Datafile of MIDI pitch/amplitude pairs. 
  Range: MIDI-pitch: 3.5-127; Amp: 0-1
  Example:		
{Pitch	Amp}
48	1.0
60	0.9
67	0.8
76	0.7

VARIBANKF (Mode 3): Datafile - lines of Time:Frq1,Amp1,Frq2,Amp2...(varibank freq.format)
  Ranges: Time (secs); Freq: 0.1 to 11025; Amp: 0-1  
  Example:		
{Time, Freq, Amp, Freq, Amp,...}
0.2  200 0.4  400 0.5  800 0.6  1000 0.7  2000 0.8  4000 0.9
0.5  420 0.4  440 0.5  480 0.6   500 0.7  1000 0.8  2000 0.9

VARIBANKM (Mode 4): Datafile - lines of Time:Pch1,Amp1,Pch2,Amp2...(varibank MIDI format)
  Ranges: Time (secs); MIDI-pitch: 3.5-127; Amp: 0-1
  Example:		
{Time, Pch, Amp, Pch, Amp,...}
0.2 48.0 0.5  60.00 0.6  67 0.7  72.00 0.8  76.0 0.9
0.5 66.5 0.9  66.75 0.8  67 0.7  67.25 0.6  67.5 0.5
 
DEPTH of application of FOFs to the synthesized sound 
  Range: 0 to 1

[270]  PeakPulse
PEAKPUSE (CDP: retime retime 1): reposition peaks at regular times

PeakPulse retimes events at regular times, based on tempo or beat-duration. The peaks are taken from a datafile peaktimes.txt, such as may be output by PeakFind. If times have not been taken from the original soundfile, unusual timings can be expected.

MODES
1 Tempo
2 Beat duration

PARAMETERS
PEAKTIMES: text datafile of peak times, as output by PeakFind
  Datafile: single column of times in secs.
TEMPO (Mode 1): tempo determining speed of output for re-timed events
  Range: 20-300 BPM
BEAT_DUR (Mode 2): duration of beat determining speed of output for re-timed events
  Range: 0.001 to <1.0 (sec)

[271]  PeakRetime
PEAKRETIME (CDP; retime retime 2): reposition peaks at specified times

PeakRetime retimes events, designated in a peaktimes file, to new times. The source sound's peaktimes can be got from PeakFind. To construct the appropriate datafile, a second column must be added to the peaktimes list, giving the new time for the peak. Tempo is also adjustable.

PARAMETERS
RESYNC: text datafile of old / new peaktimes
  Format:
  1st line is a tempo indication in BPM, e.g. 60
  2nd line: time of first accented event: one of the times in column 2
  Lines of Input peaktime  Output peaktime
  Example:
	60
        0.784
	0.315	0.784
	0.549	1.069
	0.702	1.171
	0.936	1.405
	1.094	2.024

TEMPO: tempo determining speed of output for re-timed events in proportion to that in RESYNC
  Range: 20-300 BPM 
  If <1, interpreted as a beat duration, range:  0.001 to <1.0 (sec)
PEAKWIDTH: Duration of output events (T-V)
  Range: 1 to 1000 ms
  T-V: time peakwidth breakpoint file
SPLICE: length of splice the duration of splices used to cut the output events 
  Range: 1-100 ms Default 15ms


[2721] R-Shorten
R-SHORTEN (CDP: retime retime 3): shorten silence-separated event lengths

R-Shorten shortens event lengths in a soundfile containing silences. The user specifies a minumum event duration in the Infile (INPFKWIDTH), shorter events being ignored, and an equivalent duration of output events.  

MINSIL should be large enough to avoid fleeting silences within events being noticed by the process. If too large, the event duration shown may be that of the entire soundfile.

PARAMETERS
MINSIL: duration of minimum silence between events in Infile (shorter silences are ignored)
  Range: 1-100 ms Full range: 0.045351 to 10000.0 ms; suggested value 15 ms
INPKWIDTH: minimum duration of input events (ms); shorter events are ignored
  Range: 1-1000 ms; suggested value 100 ms
OUTPKWIDTH: required duration of output events (ms)
  Range: 1-1000 ms
SPLICE: length of splice slope (ms)
  Range: 1-100 ms; typical value 15 ms

NOTES
Very hard to set suitable parameter values without generating error messages.

Some ways of generating silences between events:
   GATE - low level is replaced by silence
   ENVLEVEL Gate (CDP: envel warp 8)- low level is replaced by silence
   PEAKCHOP - gates around peaks and replays at new tempo
   GATE-EXTRACT + SILENCES: extract event times and add silence at given times 
   Extract (breakpt) envelope - apply EnvWarp/Gate - EnvImpose on source
   PEAKENV + ENVIMPOSE: extract peak envelope and impose on source
   GRANULATE sound
   MASKS: mask given times of soundfile (not necessarily significant events)
   TREMOLO with WIDTH >1


[2722] R-Pulse
R-PULSE (CDP: retime retime 4): output silence-separated events at regular times

R-Pulse: silence-separated events are output at regular times, according to TEMPO (e.g. 60 = 1 event per second; 90 = 1 event per 3/4" sec.). 

PARAMETERS
MINSIL: duration of minimum silence between events in Infile (shorter silences are ignored)
  Range: 1-100 ms Full range: 0.045351 to 10000.0 ms; suggested value 15 ms
TEMPO: tempo determining speed of output for re-timed events (e.g. 120 = 2 events per second)
  Range: 20-300 BPM 
  If <1, interpreted as a beat duration, range:  0.001 to <1.0 (sec)
PREGAIN: attenuate input to allow for overlapping of events
  Range: 0.001 to 1.0 Typical value 0.7

NOTES
In a test, two previously GRANULATEd sounds synchronized perfectly. 

Some ways of generating silences between events:
   GATE - low level is replaced by silence
   ENVLEVEL Gate (CDP: envel warp 8)- low level is replaced by silence
   PEAKCHOP - gates around peaks and replays at new tempo
   GATE-EXTRACT + SILENCES: extract event times and add silence at given times 
   Extract (breakpt) envelope - apply EnvWarp/Gate - EnvImpose on source
   PEAKENV + ENVIMPOSE: extract peak envelope and impose on source
   GRANULATE sound
   MASKS: mask given times of soundfile (not necessarily significant events)
   TREMOLO with WIDTH >1

[2723] R-Speed
R-SPEED (CDP: retime retime 5): change speed of silence-separated events 

R-Speed changes the tempo of silence-separated events in a soundfile. The speed is time-variable. At a faster speed than the original, events may overlap.

PARAMETERS
MINSIL: duration of minimum silence between events in Infile (shorter silences are ignored)
  Range: 1-100 ms Full range: 0.045351 to 10000.0 ms; suggested value 15 ms
SPEED: factor changing speed of events (T-V)
  Range: 0.001 to 100 (<1 slower; >1 faster)
(START): Time at which speed change begins
  Range: 0 - file-length (secs)
(END): Time at which speed change ends
  Range: 0 - file-length (secs); >START
(SYNC): approx. time of input event to synchronise with its copy in the output
  Range: 0 - file-length (secs); 0 = synchronise 1st event 

NOTES
Some ways of generating silences between events:
   GATE - low level is replaced by silence
   ENVLEVEL Gate (CDP: envel warp 8)- low level is replaced by silence
   PEAKCHOP - gates around peaks and replays at new tempo
   GATE-EXTRACT + SILENCES: extract event times and add silence at given times 
   Extract (breakpt) envelope - apply EnvWarp/Gate - EnvImpose on source
   PEAKENV + ENVIMPOSE: extract peak envelope and impose on source
   GRANULATE sound
   MASKS: mask given times of soundfile (not necessarily significant events)
   TREMOLO with WIDTH >1


[2724] R-Times
R-TIMES (CDP: retime retime 6 and 7): reposition silence-separated events at specified beats/times

R-Times repositions silence-separated events at new specified times or at specified beats (where the datafile specifies position of events in beats, with start assumed to be Beat 0) at a given tempo. The OFFSET parameter can be used to make the event sequence start at a later time.

MODES
1 Reposition at beats (CDP mode 6): reposition events at specified beats
2 Reposition at times (CDP mode 7): reposition events at specified times

PARAMETERS
MINSIL: duration of minimum silence between events in Infile (shorter silences are ignored)
  Range: 1-100 ms Full range: 0.045351 to 10000.0 ms; suggested value 15 ms
TEMPO: tempo determining speed of output for re-timed events (e.g. 60 = 1 event per second)
  Range: 20-300 BPM 
  If <1, interpreted as a beat duration, range:  0.001 to <1.0 (sec)
NEWBEATS (Mode 1): textfile of event positions given as beats at defined TEMPO, starting at beat zero
  List of beats as numbers (?) - start with 0 
NEWTIMES (Mode 2): textfile of event positions given as times
  List of times (seconds)
OFFSET: time of the first sounding output event (delayed by OFFSET seconds)
  Range: 0 to file-length 
PREGAIN: attenuate input to allow for overlapping of events
  Range: 0.001 to 1.0 Typical value 0.7


NOTES
The beats mode (1) does not seem to be reliable.
Some ways of generating silences between events:
   GATE - low level is replaced by silence
   ENVLEVEL Gate (CDP: envel warp 8)- low level is replaced by silence
   PEAKCHOP - gates around peaks and replays at new tempo
   GATE-EXTRACT + SILENCES: extract event times and add silence at given times 
   Extract (breakpt) envelope - apply EnvWarp/Gate - EnvImpose on source
   PEAKENV + ENVIMPOSE: extract peak envelope and impose on source
   GRANULATE sound
   MASKS: mask given times of soundfile (not necessarily significant events)
   TREMOLO with WIDTH >1

[2725] R-Repeat
R-REPEAT (CDP: retime retime 8): repeat a specified silence-separated event

R-Repeat repeats a single silence-separated event within a sound, the event occurring at a time specified by the user (EVENTTIME). The repeats are made at the specified TEMPO. The length of the segment to be repeated is determined by the number of BEATS at the given TEMPO, e.g. TEMPO 120 (2 beats/sec) and BEATS 4 = 2". If the segment length is longer than the Infile, the remaining time is filled by silence: e.g. for a 2" drum sample and TEMPO 60, BEATS 4 (event-length 4"), the whole sample is repeated at 4" intervals.  

The process works well provided the event is clearly preceded and followed by silence and the time is accurate: PEAKENV can help to find event times. 

PARAMETERS
MINSIL: duration of minimum silence between events in Infile (shorter silences are ignored)
  Range: 1-100 ms Full range: 0.045351 to 10000.0 ms; suggested value 15 ms
TEMPO: tempo determining speed of output for re-timed events (e.g. 60 = 1 event per second)
  Range: 20-300 BPM 
  If <1, interpreted as a beat duration, range:  0.001 to <1.0 (sec)
EVENTTIME: specifies approx. start time of event to be repeated
  Range: 0-file-length (secs)
BEATS: length of the event-segment to be repeated, specified as no. of beats at given TEMPO
  Range: 1.00-24.00 (beats; fractions permitted)
REPEATS: number of repeats of silence-separated event
  Range: 1-1000 (1 = play twice)


NOTES
It seems that if the process cannot find any silences, it repeats the whole file at the specified TEMPO and number of REPEATS, the repetitions being layered on top of each other (and probably clipping). With a test sound that apparently had gaps, it performed correctly only when the gaps had been explicitly turned into silences by ENVLEVEL Gate.
 
Some ways of generating silences between events:
   GATE - low level is replaced by silence
   ENVLEVEL Gate (CDP: envel warp 8)- low level is replaced by silence
   PEAKCHOP - gates around peaks and replays at new tempo
   GATE-EXTRACT + SILENCES: extract event times and add silence at given times 
   Extract (breakpt) envelope - apply EnvWarp/Gate - EnvImpose on source
   PEAKENV + ENVIMPOSE: extract peak envelope and impose on source
   GRANULATE sound
   MASKS: mask given times of soundfile (not necessarily significant events)
   TREMOLO with WIDTH >1

[2726] R-Mask
R-MASK (CDP: retime retime 9): mask some silence-separated events using pattern of 0/1s

R-Mask masks one or more silence-separated events using a pattern of 1 (sound) and 0 (silent). For example, inserting two silences into a speech phrase to identify one word-event in fact gave four markers (including the file start and end) delineating three events, any of which could be switched on or off. This function is also an easy way of separating granulated sounds into separate streams. 

PARAMETERS
MINSIL: duration of minimum silence between events in Infile (shorter silences are ignored)
  Range: 1-100 ms Full range: 0.045351 to 10000.0 ms; suggested value 15 ms
MASKDATA: text data file listing mask pattern of 0s and 1s
  Example:
    1
    0
    0   

NOTES
Some ways of generating silences between events:
   GATE - low level is replaced by silence
   ENVLEVEL Gate (CDP: envel warp 8)- low level is replaced by silence
   PEAKCHOP - gates around peaks and replays at new tempo
   GATE-EXTRACT + SILENCES: extract event times and add silence at given times 
   Extract (breakpt) envelope - apply EnvWarp/Gate - EnvImpose on source
   PEAKENV + ENVIMPOSE: extract peak envelope and impose on source
   GRANULATE sound
   MASKS: mask given times of soundfile (not necessarily significant events)
   TREMOLO with WIDTH >1


[2727] R-Accents
R-ACCENTS (CDP: retime retime 10): adjust the levels of silence-separated events using an accent pattern

R-Accents accentuates one in every N silence-separated events by retaining the level of the accented events and reducing the others to a user-specified level.

PARAMETERS
MINSIL: duration of minimum silence between events in Infile (shorter silences are ignored)
  Range: 1-100 ms Full range: 0.045351 to 10000.0 ms; suggested value 15 ms
METER: accent first of every METER events
  Range: 0-24; 0 equalizes all events except loudest to value of EQUALIZE
EQUALIZE: loudness of events relative to accented one, or loudest one if METER=0
  Range: 0 (no emphasis) to 1 (all at maximum emphasis)
(PREGAIN): attenuate input to allow for overlapping of events
  Range: 0.001 to 1.0 Typical value 0.7

NOTES
Some ways of generating silences between events:
   GATE - low level is replaced by silence
   ENVLEVEL Gate (CDP: envel warp 8)- low level is replaced by silence
   PEAKCHOP - gates around peaks and replays at new tempo
   GATE-EXTRACT + SILENCES: extract event times and add silence at given times 
   Extract (breakpt) envelope - apply EnvWarp/Gate - EnvImpose on source
   PEAKENV + ENVIMPOSE: extract peak envelope and impose on source
   GRANULATE sound
   MASKS: mask given times of soundfile (not necessarily significant events)
   TREMOLO with WIDTH >1

[2728] R-FindDurns
R-FINDDURNS (CDP: retime retime 11): find longest/shortest silence-separated event

This function reports the location of the shortest and longest event in a soundfile containing silences. It also reports the length of the shortest event.


PARAMETER
MINSIL: duration of minimum silence between events in Infile (shorter silences are ignored)
  Range: 1-100 ms Full range: 0.045351 to 10000.0 ms; suggested value 15 ms

[273]  PeakMove
PEAKMOVE (CDP: retime retime 13/14): find peak and move soundfile to specified time

PeakMove adjusts the sound in relation to a single peak. In Mode 1, the program finds the peak and the user specifies a new position to which the peak is moved by inserting or deleting silence at the start. In Mode 2, the time of existing peak in the Infile is also specified by the user. Note that the whole soundfile is shifted to the new position, not just the found/specified peak.

MODES
1 Find peak
2 Specify peak

PARAMETERS
NEWPEAK: time where peak is to be moved to
  Range: 0-120 (secs)
PEAKTIME (Mode 2): time of specified peak in Infile 
  Range: 0-file-length (secs)

NOTE
In Mode 1, it seems to move the first peak.

[274]  PeakChop
PEAKCHOP (CDP: envnu peakchop 1): isolate and play events at a given tempo, with optional repeats

PeakChop gates the sound around peaks and plays these peak-events at regular times according to the playback tempo.  Fortunately some of the 11 parameters are optional.

PeakChop is very efficient at isolating and repeating individual events (see REPEATS), such as speech syllables or well-articulated notes. At fast tempi, events may overlap and GAIN may need to be lowered. WINDOW determines the accuracy of the extracted envelope: a broader picture is probably better than a more accurate view. PEAKWIDTH sets a width for these, which must be less than the minimum distance between peaks. 

PARAMETERS
WINDOW: window-size for extracting envelope
  Range: 1-64 ms; default 50 ms
PEAKWIDTH: width of retained peaks
  Range: 1-100 ms; default 20ms (T-V)
RISE-TIME: tie from zero to peak
  Range: 1-64 ms; default 10ms (T-V)
TEMPO: of resulting output
  Range: 20-300 ms (60 = 1 per second) (T-V)
GAIN: overall output level; lower this if rapid tempo overlaps peaks (T-V)
  Range: 0-1; default 1.0 (T-V)

Optional:
(GATE): level (relative to maximum) below which peaks are ignored 
  Range: 0-1; default 0.0
(SKEW): centring of envelope around peak
  Range: 0-1; default 0.25 
  0.0 = centre on start of peak
  0.5 = centre on centre of peak
  1.0 = centre on end of peak
(SCATTER): randomize output times (T-V)
  Range: 0-1; default 0
(NORMALISE): force peak-event levels towards that of the loudest peak (T-V)
  Range: 0-1; default 0.0  0= no change; 1 = all levels match loudest
(REPEATS): number of times peak events are repeated (T-V)
  Range: 1-256; default 0 (1= play twice)
(MISS): play peak event then skip next MISS peak events (T-V)
  Range: 0-64; default 0

NOTES
PEAKCHOP is efficient at isolating and repeating events marked by peaks. 
It is also one of several ways of generating silence-separated events for use with the Retime functions. 


[2750] POLYRHYTHMS
POLYRHYTHMS (CDP: ceracu): staggered repeats of soundfile  (M-C out) 

POLYRHYTHMS is an implementation of musical polyrhythms (e.g. 2 against 3). In each of several sound streams, the source sound is re-triggered at a regular time-interval, which is normally different for each stream. After a certain number of repetitions, the streams re-synchronise, completing a full "resync cycle".

The text datafile CYCLECOUNTS gives the number of repeats per cycle for each stream. Sounds are split across the given number of output channels (OUTCHANS): a typical example might match the number of channels and streams (e.g. 2 for 2 against 3); if these do not match, channels may contain various resultant rhythms. 

The time-span of the cycle is determined by MINDUR, the shortest division (e.g. 3 in 2 against 3).  This division may mean that the source is not played in full within the cycle.

OUTDUR is the overall minimal output length. The actual duration is normally longer, as the process always outputs a whole number of complete resync-cycles, equal to or greater than OUTDUR. The final playing of the source in each channel always runs to its end and an extra tail of silence also seems to be added.  If the duration would be greater than 1 hour, the sound is curtailed, unless the "over-ride" option is set.

Finally, there is an optional single echo of the entire output (of ECHO time-delay), which may be shifted spatially by a given number channels (ECHOSHIFT) to the right or left.

PARAMETERS
CYCLECOUNTS: Number of repeats in each stream, per cycle.
  Range: integers >1 (?); 1 per line
  Example (for 2 against 3):
     2
     3		
MINDUR: Minimum duration of the fastest-repeated sound (smallest cycle-division).
  Range 0 = filelength; >0 to 67.2 secs.
OUTCHANS: No. of channels in output 
  Range: 1-16
OUTDUR: minimum duration of output; actual duration depends on cycle-length. Zero outputs one complete cycle. 
  Range: 0 (1 cycle) -300 secs (Soundshaper limit, which can be exceeded). 
  If true duration > 60 mins., output curtailed unless "Over-ride" option selected.
ECHO: Optional single echo-delay of entire output.
  Range: 0 - 49.551383 secs
ECHOSHIFT: Spatial offset (in channels) of any echo-delay. 
  Range N = No. of chans. to right; -N = same to left. 

OPTIONS
 Over-ride cutoff duration (of 1 hour) to produce a complete cycle.  (TAKE CARE WITH THIS!)
 Linear chans: channels arranged linearly with defined left and right ends; default: ring numbering.

NOTES
Infile is natively MONO, but in Soundshaper you can use Stereo or M-C intputs.
Process works well with short sounds, e.g. guitar note.
The multi-channel output can be split into separate channels, with each of these processed e.g. by transposition, and then later re-mixed into a stereo or new m-c file.
Small MINDUR (e.g. 0.1") and large CYCLECOUNTS proportions (e.g. in range 30-40) produce an irregularly staggered output. 

This is a useful testbed for creating "X against Y" of virtually any proportions. Complex rhythmic resultants can easily be created: for example cyclecounts of 2,3,4,5,7 shared among 4 channels.

The major limitation is that it repeats only one source, but this can be got round by a) splitting the resultant channels and copying those to be retained for that sound, b) repeating the process and splitting with (a) different sound(s), and c) mixing or interleaving the results.  


[2751] MCHREPEATS
MCHREPEATS (CDP: madrid): spatially syncopate repetitions of sound(s)  (M-C out)
  
MchRepeats repeats one or more sounds and outputs these to multi-channel space. In Mode 1, the order sequence of the soundfiles is chosen at random. In Mode 2, which must have at least two inputs, the sequence is specified in a textfile (SEQFILE).

The time-interval between repetitions is set by STEP, randomized by RAND. STEP can be less than the input file-length(s), so that sounds overlap. Both STEP and RAND are time-variable.

Internally, the function produces several spatially distinct sound streams (STREAMS parameter), each of which has the same STEP time-interval and order of sounds. Some repetitions are then randomly deleted (DELETE parameter) to give a sense of spatial syncopation.

SEED initialises the randomisation OF DELETIONS. With a non-zero value, re-running the process with the same parameters will produce the same output. Otherwise deletions are always different.

MODES
 1 Random sequence: sounds are repeated in a random order: check one (only) of the "RANDOM" options.
 2 User-defined sequence: sounds repeated in a given sequence (SEQFILE) 

PARAMETERS
SEQFILE (Mode 2): List of input soundfile numbers in sequence order 
	eg 1 2 3 2 3 2 1 (Separate by new lines or spaces)
DUR: Duration of output sound
  Range: Infile-length to 32767 secs (Soundshaper's limit of 300 may be exceeded.)
OUTCHANS: Number of channels in output sound 
  Range: 2-16
STREAMS: Number of spatially distinct streams ( made no difference)
  Range: 2-64
DELETE: Proportion of items to delete randomly.   
        Values between 0 and 1 delete that proportion of events in the various streams.
        For values greater than 1, proportion of events at a single location increases
        and, if the "Allow empty events" option is set, the proportion of empty events.
  Range: 0-1; 1-1000; T-V  (Soundshaper's upper limit of 100 may be exceeded.)
STEP: Time between event repetitions.
  Range: 0-60 secs; T-V
RAND: Randomisation of step size 
  Range: 0-1; T-V.
(SEED): Same seed-number produces identical output on rerun. 
  Range: 0-1; default:0 (deletions always different). 

OPTIONS
 Allow empty events: sound is absent at some of the repeat-steps.
 Linear chans: channels arranged linearly with defined left and right ends; default: ring numbering.
 Random permutation: Randomly permutate order of sounds used in output (all input sounds are used once before the next order-permutation is generated).
  OR 
 Randomly select input: randomly select next input sound (Do not select with Random permutation.)
NB: Mode 1: to acheive a random order, it is necessary to check one of the "random" options.

NOTES
The program does not prevent overload when inputs are mixed. To use the function successfully, it may be necessary to reduce the level of each input first.

The usage refers to various sound-streams, but the actual output is a single stream of events distributed in multi-channel space. 

The process works by playing synchronous copies of the original source at different spatial positions to produce each output-event. Depending on which, and how many, of these copies are played synchronously, the output-event appears to have been shifted in position, or loudness (compared with the mono input).  The crucial parameters are DELETE and the "Empty events" option (which allows silent combinations to be output). - T.W. (adapted). 

For OUTCHANS > 2, the loudspeaker array is assumed to be circular. The option "Linear channels" forces the array to be linear (with defined left and right ends). In practice this has no relevance, as the  relationship between channel number and speaker layout is entirely up to the user.


[2752] SHIFTER
SHIFTER (CDP: shifter): simultaneous repetition cycles with shifting focus (M-C out)

SHIFTER sets up a number of polyrhythmic streams (e.g. 3 against 2); however, unlike POLYRHYTHMS (CDP: Ceracu), in which these remain in a fixed relationship, here the repetition-times are arranged so that the streams will re-synchronise after a specified number of cycles in each stream.

For example, with cycles 11,12,13, 3 streams are set up which repeat the sound 11,12 and 13 times, respectively, before the streams resynchronise (i.e. three streams with their tempi in the relationship 11:12:13). These values are listed in the data file CYCLES. 

CYCDUR gives the duration of one complete cycle (between synchronisation points). The CYCLE data and and cycle duration together determine the tempi of the streams.

SUBDIV specifies the minimum division of the beat. (As "beat" here means the subdivisions of a cycle - see CYCLES parameter - presumably this sets the degree of time-resolution within the beat.)  

The various "focusing" parameters determine which of the simultaneous tempi is the most prominent at any time. In the standard operation, the focus (loudness) shifts to each of the listed cycles in the order they appear in the data file. LINGER permits a number of cycles to remain in a fixed focus before transition to the next focus; TRANSIT specifies the number of cycles in this transition. Together, LINGER and TRANSIT must be greater than 0. The options Zigzag-Focus or Random-Focus further affect the focussing through the cycles. 

The streams are spatially separated if the output has two or more channels (OUTCHANS), the play-locations of each stream being spatially distributed over the output array.

Note also:
 Choose the Mode according to the number of inputs you have selected. Mode 1 is for single input only and Mode 2 for > 1 input. 
 TRANSIT may have to be >0 to produce any output (not verified);
 The input level(s) should be reduced as necessary to avoid distortion as the sounds are mixed;

MODES
1 Single source: uses the same input sound for all cycles
2 Multi-source: number of input files equals number of cycles

PARAMETERS
CYCLES: Textfile listing the number of beats in each cycle (at least 2 different integers with values  >= 2).
In Mode 2, the number of entries should equal the number of input sound-sources.
These numbers represent the count of repetitions in each output stream before the streams resynchronise.
 
  Range: >1; don't repeat the same number.
  Example:
  11
  12
  13
CYCDUR: Duration of 1 complete cycle 
  Range: 0.01 to 3600 secs
DUR: Duration of output sound 
  Range: 0-32767 secs
OUTCHANS: Number of output channels 
  Range: 1-16
SUBDIV: Minimum division of the beat 
  Range: Multiple of 2 or 3; <=64
LINGER: Number of cycles to remain in a fixed focus (i.e. the number of cycles for which the focus remains on any one cycle). 
  Range: 0 to 32767 (Soundshaper default = 0)
TRANSIT: Number of cycles during which the focus moves from one cycle to another (may have to be >0 to give any output(?)
  Range: 0 to 32767; LINGER + TRANSIT >= 1  (Soundshaper default = 1)
BOOST: Focus Level Boost: raises the standard stream level to focus it (risk of overflow?). 
If the standard stream level is "L", the focus stream is increased in level by "L" times "BOOST".
  Range: 0-1-10

OPTIONS
 Zigzag focus (not with Random Focus): read back and forth through through the cycles, i.e. focus shifts gradually to the end of the data list, then back gradually towards the start, and so on.
OR 
 Random focus shift (not with Zigzag Focus): focus selects a RANDOM order of cycles, i.e. the cycle to focus on is determined by a random permutation of the order of the cycles. Once all the cycles have been used, a new permutation is made.
 Linear chans: channels arranged linearly with defined left and right ends; default: ring numbering.

NOTES
 The sounds themselves are NOT time-stretched. Only the timings-between-repetitions are different in the different cycles.
 BUG? - If TRANSIT=0 the output is nil (not verified).
 The program readily produces overflow as the sounds are mixed. You are recommended to reduce the source level(s) before selecting the process. 
 The process may take a while to run.


[2753] [2754] SHRINK 
SHRINK (CDP: shrink):  repeat a sound, shrinking it on each repetition.

SHRINK repeats a sound, but shrinks its length on each repetition, either from the end (Mode 1), the middle (Mode 2), the start (Mode 3), or around the specified time (Mode 4). Two further modes output multiple outfiles (see below).

The repetitions do not overlap, hence the initial gap between events (GAP) cannot be less than the Infile-length. CONTRACT shrinks these gaps, making the repetitions ever closer, while SHRINKAGE shrinks the actual sound-length (must be < CONTRACT). For example, if CONTRACT=1 (equally spaced gaps), the gaps are equal, but the sounded length gets progressively smaller (depending on SHRINKAGE).

OUTLENGTH sets a minimum output duration, but the actual output may be more or less than this.  The outfile length does not seem to be set by the rate of shrinkage (in other words, if SHRINKAGE is set to a high value, set DUR high too). The shrinkage may also take less time than DUR. 

SMALL optionally sets a minimum sound length below which the sound cannot shrink, subsequent repetitions being at SMALL length. MIN likewise sets a minimum for CONTRACT, subsequent gaps being at MIN distance, as randomized by RAND.

One of the various options produces reversed segments in the outfile. When this file is itself reversed, the segments expand/decelerate rather than shrink/contract.       
           
Modes 5 and 6 isolate events in the sound, giving multiple outputs which shorten from one to the next.
(In Soundshaper, these modes have a separate menu item, parameter page and ID number.) 
In Mode 5, the program finds the peaks around which the segments are based; in Mode 6, the user specifies these in a textfile (PEAKTIMES). Both modes also produce a multi-channel mixfile. WINDOW sets an envelope-extraction window size. Other (optional) parameters set a minimum segment length before contraction can begin (LEN), a gate level (GATE), below which any peaks found are ignored, and SKEW: how the envelope contour is centred on the segment (0.5 being central). There are two further options: "even squeeze" (sounds contracting in a regular manner) and "omit quiet sounds", once a fixed end tempo has been reached.   

MODES
1 End: shrink from end
2 Middle: shrink around midpoint
3 Start: shrink from start
4 Time: shrink around specified time
5 Found peaks: shrink around found peaks and output each segment plus a mixfile.
6 Specified peaks: shrink around specified peaks and output each segment plus a mixfile.

PARAMETERS
TIME: time around which shrinkage takes place.
SHRINKAGE: shortening factor from one repeat to next until too short for splices 
  Range: 0-1 and < CONTRACT
GAP: initial timestep between output events 
  Range: (>= Infile-length to 60 secs).
CONTRACT: contracts the gaps between output events: 
  Range: 0-1 and >= SHRINKAGE;  1.0 = equally spaced, < 1.0  become closer. 
DUR (Modes 1-4): Minimum duration of output. Actual output may be more or less than this. 
  Range: 2x file-length to 32767 secs
AFTER (Modes 5 + 6): Time after which shrinkage begins
  Range: 0 to filelength

SPLICE: Splice length in msecs 
  Range: 2-50 ms
(SMALL): Minimum sound length, after which sounds are of equal length. Must be < MIN.
  Range: 0-136576 secs
(MIN): Minimum event separation, after which events are regular in time (subject to RAND).
Must be < than initial event separation (GAP)
  Range: 0-32767 secs
(RAND): Randomization of timings AFTER minimum event separation (MIN) reached.
  Range: 0-1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Modes 5 and /or 6 only:
PEAKTIMES (Mode 6): Textfile list of times of peaks in sound.
  Range:
WINDOW: Window size for extracting envelope 
  Range: 1-100 msecs; default 100
(LEN): Minimum segment length before sound squeezing can begin (for -e flag)
  Range:  0- filelength secs (?)
(GATE): Level (relative to maximum) below which found peaks are ignored 
  Range: 0-1; default 0
(SKEW): How envelope is centred on segment. Zero value: parameter has no effect. 
  Range: 0 to 1; default 0.25. 0.5 = central.       

OPTIONS
Equalise segments: equalise maximum level of output events (if possible).
Reverse segments: reverse each segment in output; reverse outfile to create expanding segments
Even Squeeze (Mode 5+6 only):Sounds shorten in a regular manner, from 1st squeezed segment
Omit quiet events (Mode 5+6 only): Omit any too-quiet events once a fixed end tempo has been reached.

NOTES
Modes 5/6 are implemented separately in Soundshaper. (Mixfile output needs further work!) 

[2760] PULSER - Provisional 
PULSER (CDP: pulser Rel.8) - PROVISIONAL

PULSER repeats short bursts of sound - enveloped "sound packets" - at regular intervals (up to 1") to give a pulsed effect. The key parameter is the SPEED of repetition, modifiable randomly by SCATTER; both of these can be time-varying.

The envelope is shaped by MIN/MAX RISE time, MIN/MAX SUSTAIN time and MIN/MAX decay time, the value in each case being set randomly between the MIN and MAX values. The steepness of the rise and decay slopes is set by the exponent values EXPR for rise and EXPD for decay. The longest available time among these values is a maximum of 2 seconds for the decay; if longer than SPEED, there will be some overlap of pulses.

Various optional parameters enhance pitch, amplitude or spatial variation.

MODES
1. Pitched output. Sound packets take only their spectral brightness from the source.
2. Source start. Sound packets always proceeds from the source start, so they retain its sonic character (pitch, rhythm, syllables etc.).  
3. Randomly selected startpoints within the source: yet another of the many CDP sound-manglers. The output is stereo or 8-channel.
4. Randomly selected and spatially time-varying (see SPACEDATA). The output is 8-channel.

PARAMETERS
OUTLENGTH: duration of output soundfile
  Range: 0.02 to 32767 secs
PITCH (Mode 1): output pitch
  Range: 24 to 96 (MIDI, 60=MidC), fractions allowed. (T-V)
CHANS (Mode 3): 0 (stereo) or list of output channels to use, out of 8-chan. output
  Range: 0 (stereo) or list chans in numerical order, no repeats and no gaps (e.g. 12 or 1234)
SPACEDATA (Mode 4): text file; lines of TIME and CHANS 
  Range: Times are output times; channels 1-8, with spaces. For example:
     0.00  1 2
     1.00  3 4   
MINRISE, MAXRISE: minimum and maximum envelope rise time. 
  Rise time is set as a random value between the 2 limits.
  Range: 0.002 (2mS) to 0.2 seconds (200 mS)  
MINSUS, MAXSUS: minimum and maximum envelope sustain time.
  Sustain is set as a random value between the 2 limits.
  Range: 0 to 0.2 seconds (200 mS)
MINDCAY,MAXDECAY: minimum and maximum envelope decay time.
  Decay time is set as a random value between the 2 limits. 
  Range: 0.02 (20 mS) to 2 secs
SPEED:  (Average) time between packets in output
  Range 0.05 to 1 sec.  (T-V)
SCATTER: randomisation of speed 
  Range: 0 to 1 (T-V)
(EXPR): rise slope  
  Range: 0.25 to 4;  1 linear: >1 steeper: <1 shallower   (T-V)
(EXPD): decay slope 
  Range: 0.25 to 4;  1 linear: >1 steeper: <1 shallower   (T-V)
(PSCAT): random variation of pitch of packets
  Range: 0 to 1 semitones   (T-V)
(ASCAT): random variation of amplitude of packets
  Range 0 (no jitter) to 1  (T-V)
(OCTAVE): amount of lower-octave reinforcement
  Range: 0 to 1  (T-V)
(PCHBEND): amount of upward pitchbend of packets 
  Range: 0 to 1 semitones  (T-V)
(SEED): Same seed-number produces identical output on re-run 
  Range: Integer >=1
(WIDTH) Modes 3/4: width of spatial scatter-positions of packets, across stereo/multichan space.
  If CHANS=0 (or SPACEDATA=0, unlikely: use Mode 3), scattering is across stereo; width zero = MONO
  otherwise = width of scatter-positions away from loudspeaker-centric; width zero = centred in loudspeakers.
  Range 0 to 1   (T-V)
 
NOTES:
In CDP documentation and command-line, Soundshaper's Modes 3 and 4 are within CDP Mode 3's single parameter SPACEDATA. Soundshaper needs an extra parameter CHANS to handle the differing formats of SPACEDATA. 

Pitched mode: with some sources, the required pitch may not always be entirely clear. This is (presumably) because of imposing the source's spectral envelope.

If longer gaps are required between pulses, RETIME SPEED may be used to lengthen them (provided they do not overlap). Note that R-SPEED's SPEED parameter is a multiplier: 0.5 will halve the speed / double the rate of pulses. 


[2761] PULSE MULTI - Provisional 
PULSEMULTI (CDP: pulser multi Rel.8) - PROVISIONAL

PULSEMULTI is a variant of PULSER with multiple inputs. The pulsed output cycles round these, always starting with the first. Apart from this, the parameters are identical to PULSER.

PULSEMULTI (like PULSER) repeats short bursts of sound - enveloped "sound packets" - at regular intervals (up to 1") to give a pulsed effect. The key parameter is the SPEED of repetition, modifiable randomly by SCATTER; both of these can be time-varying.

The envelope is shaped by MIN/MAX RISE time, MIN/MAX SUSTAIN time and MIN/MAX decay time, the value in each case being set randomly between the MIN and MAX values. The steepness of the rise and decay slopes is set by the exponent values EXPR for rise and EXPD for decay. The longest available time among these values is a maximum of 2 seconds for the decay; if longer than SPEED, there will be some overlap of pulses.

Various optional parameters enhance pitch, amplitude or spatial variation.

The input filea are natively mono. Soundshaper can currently take a stereo input for Sound 1, but not for the others.
Output channels match input, except in Mode 3/4 where the output is 8-channel, unless (Mode 3) set to zero. 


MODES
1. Pitched output. Sound packets take only their spectral brightness from the source.
2. Source start. Sound packets always proceeds from the source start, so they retain its sonic character (pitch, rhythm, syllables etc.).  
3. Randomly selected startpoints within the source: yet another of the many CDP sound-manglers. The output is stereo or 8-channel.
4. Randomly selected and spatially time-varying (see SPACEDATA). The output is 8-channel.

PARAMETERS
OUTLENGTH: duration of output soundfile
  Range: 0.02 to 32767 secs
PITCH (Mode 1): output pitch
  Range: 24 to 96 (MIDI, 60=MidC), fractions allowed. (T-V)
CHANS (Mode 3): 0 (mono/stereo, matching Sound 1) or list of output channels to use, out of 8-chan. output
  Range: 0 (mono/stereo) or list chans in numerical order, no repeats and no gaps (e.g. 12 or 1234)
SPACEDATA (Mode 4): text file; lines of TIME and CHANS 
  Range: Times are output times; channels 1-8, with spaces. For example:
     0.00  1 2
     1.00  3 4   
MINRISE, MAXRISE: minimum and maximum envelope rise time. 
  Rise time is set as a random value between the 2 limits.
  Range: 0.002 (2mS) to 0.2 seconds (200 mS)  
MINSUS, MAXSUS: minimum and maximum envelope sustain time.
  Sustain is set as a random value between the 2 limits.
  Range: 0 to 0.2 seconds (200 mS)
MINDCAY,MAXDECAY: minimum and maximum envelope decay time.
  Decay time is set as a random value between the 2 limits. 
  Range: 0.02 (20 mS) to 2 secs
SPEED:  (Average) time between packets in output
  Range 0.05 to 1 sec.  (T-V)
SCATTER: randomisation of speed 
  Range: 0 to 1 (T-V)
(EXPR): rise slope  
  Range: 0.25 to 4;  1 linear: >1 steeper: <1 shallower   (T-V)
(EXPD): decay slope 
  Range: 0.25 to 4;  1 linear: >1 steeper: <1 shallower   (T-V)
(PSCAT): random variation of pitch of packets
  Range: 0 to 1 semitones   (T-V)
(ASCAT): random variation of amplitude of packets
  Range 0 (no jitter) to 1  (T-V)
(OCTAVE): amount of lower-octave reinforcement
  Range: 0 to 1  (T-V)
(PCHBEND): amount of upward pitchbend of packets 
  Range: 0 to 1 semitones  (T-V)
(SEED): Same seed-number produces identical output on re-run 
  Range: Integer >=1
(WIDTH) Modes 3/4: width of spatial scatter-positions of packets, across stereo/multichan space.
  If CHANS=0 (or SPACEDATA=0, unlikely: use Mode 3), scattering is across stereo; width zero = MONO
  otherwise = width of scatter-positions away from loudspeaker-centric; width zero = centred in loudspeakers.
  Range 0 to 1   (T-V)
 
NOTES:
In CDP documentation and command-line Soundshaper's Modes 3 and 4 are within CDP Mode 3's single parameter SPACEDATA. Soundshaper needs an extra parameter CHANS to handle the differing formats of SPACEDATA. 

If re-editing this process following an 8-channel output, it is advisable to delete the cell (CTRL+Z) and re-select the process (F8).

Pitched mode: with some sources, the required pitch may not always be entirely clear. This is (presumably) because of imposing the source's spectral envelope.

If longer gaps are required between pulses, RETIME SPEED may be used to lengthen them (provided they do not overlap). Note that R-SPEED's SPEED parameter is a multiplier: 0.5 will halve the speed / double the rate of pulses. 


[2762] PULSER SYNTH - PROVISIONAL (Modes 2 and 3 crash the program...)
PULSESYNTH: repeat synthesized wave-packets defined by partials-data (CDP pulser synth Rel. 8 - PROVISIONAL)
** Modes 2 and 3 currently crash the program **

PULSER SYNTH is closely related to PULSER and its multi-input twin PULSER MULTI. It synthesises short bursts of sound - enveloped "sound packets" - at regular intervals (up to 1") to give a pulsed effect. The synthesized waveforms are additive: up to 64 partials can be declared and the selection can either be static (Mode 1), change over time (Mode 2) or random (Mode 3); additionally the number of partials used (COUNT) can optionally be set and this can be time-varying.
 
For the pulsation, the key parameter is the SPEED of repetition, modifiable randomly by SCATTER; both of these can be time-varying. As with PULSER, the envelope is shaped by MIN/MAX RISE time, MIN/MAX SUSTAIN time and MIN/MAX decay time, the value in each case being set randomly between the MIN and MAX values. The steepness of the rise and decay slopes is set by the exponent values EXPR for rise and EXPD for decay. The longest available time among these values is a maximum of 2 seconds for the decay; if longer than SPEED, there will be some overlap of pulses. 

The format of the PARTIALS datafile (except for Mode 1) is identical to that used for AddSynth (CDP: newsynth 1/2): lines of time, partial1, level1, ( partial2, level2 ...), where partial is the partial number (1st one must be '1') and levels are relative to that of the first partial. There must be the same number of partials / levels on each line. Negative values for level invert that partial's phase.  Mode 1 is not time-varying, so a single line (or list) of partial-nos. and levels is all that is required. However, a single format could be used, with just rwo timed lines for the spectrum (one is not allowed), ignoring Mode 1.

Output is MONO.

MODES:
1. Static spectrum: sound-packets all have the same spectrum.
2. Time-varied: spectrum changes through time from one packet to the next.
3. Random: spectrum changes randomly from one packet to the next. 


PARAMETERS
PARTIALS: text data file of 
  Mode 1 -  lines of:
    partial-no.  level
  e.g. 1  1.0
       2  0.9
       3  0.8  etc.
  Partial-no. multiplies PITCH (e.g. 2 is 2nd harmonic)
  Can be whole-number or fractional (e.g. 2.5); 1st one must be 1.
  Partial numbers (range 1-64) must increase from entry to entry.
  Partial levels (0-1) are relative to the first one (which is normally 1.0)
  Negative levels invert the phase of the partial.

  Modes 2 & 3 - minimum 2 lines of:
    time partial1 level1  ( partial2, level2 ...)  
  e.g. 0.00  1 1.0  2 0.9  3 0.8  4 0.7 (etc.)
       0.5   1 1.0  2 0.6  3 0.5  4 0.4 (etc.)
       etc.
  Partials and levels are as for Mode 1.
  Times must increase. 

OUTLENGTH: duration of output soundfile
  Range: 0.02 to 32767 secs
PITCH (Mode 1): output pitch (of partial 1)
  Range: 24 to 96 (MIDI, 60=MidC), fractions allowed. (T-V)
MINRISE, MAXRISE: minimum and maximum envelope rise time. 
  Rise time is set as a random value between the 2 limits.
  Range: 0.002 (2mS) to 0.2 seconds (200 mS)  
MINSUS, MAXSUS: minimum and maximum envelope sustain time.
  Sustain is set as a random value between the 2 limits.
  Range: 0 to 0.2 seconds (200 mS)
MINDCAY,MAXDECAY: minimum and maximum envelope decay time.
  Decay time is set as a random value between the 2 limits. 
  Range: 0.02 (20 mS) to 2 secs
SPEED:  (Average) time between packets in output
  Range 0.05 to 1 sec.  (T-V)
SCATTER: randomisation of speed 
  Range: 0 to 1 (T-V)
(EXPR): rise slope  
  Range: 0.25 to 4;  1 linear: >1 steeper: <1 shallower   (T-V)
(EXPD): decay slope 
  Range: 0.25 to 4;  1 linear: >1 steeper: <1 shallower   (T-V)
(PCHSCAT): random variation of pitch of packets
  Range: 0 to 1 semitones   (T-V)
(AMPSCAT): random variation of amplitude of packets
  Range 0 (no jitter) to 1  (T-V)
(OCTAVE): amount of lower-octave reinforcement
  Range: 0 to 1  (T-V)
(PCHBEND): amount of upward pitchbend of packets 
  Range: 0 to 1 semitones  (T-V)
(SEED): Same seed-number produces identical output on re-run 
  Range: Integer >=1
(SAMPLE RATE): specify the sample-rate required 
  Values:  96000, 88200, 48000, 44100 Hz (default 44.1 KHz??)
(COUNT):  Number of partials to use in synthesis. 
  Range: 0 (default): use all partials, OR 1 to 64  (T-V) 
  Fractional values allowed, e.g. 2.4 = partial 3 at level 0.4


NOTE
If longer gaps are required between pulses, RETIME SPEED may be used to lengthen them (provided they do not overlap). Note that R-SPEED's SPEED parameter is a multiplier: 0.5 will halve the speed / double the rate of pulses. 

It would be logical to synchronise the spectral time-changes with the pulse-rate, so that new pulses have different timbres. Unfortunately there is no provision within the program (or Soundshaper yet) to do this. If synchronisation is required, it could be easier to synchronise a single set of times with SPEED and vary the gaps via RETIME SPEED.

[2770] BOUNCE R8
BOUNCE (CDP R8 - PROVISIONAL) - accelerating repeats decaying in level

BOUNCE repeats the whole input COUNT times, with the gaps between repeats shortening on each repeat, not unlike the bounces of a ball. STARTGAP sets the initial delay time between repeats (which will be shortened on subsequent repeats). SHORTEN sets the speed of the reduction (smaller is faster) and is a multiplier; so, for example, with SHORTEN = 1 the delay time is not reduced. To achieve the bouncing effect, each repetition is reduced in level: you set the END LEVEL and the sound reduces to this level over the course of COUNT repeats. 

ENVWARP bends the rate of decay: <1 giving a slower rate of decrescendo at the start and >1 a faster decay. If the optional SHRINK parameter is set, the repeated elements are themselves shortened in proportion to the accelerando; SHRINK sets a minimum length for the repeated elements. If no shrinkage is wanted, the parameter should be selected and set to zero. Finally, the "no overlap" option ensures that elements will cut off at the next repetition to avoid clipping. (This can be a problem if the source is longer than STARTGAP and the signal has multiple overlaps.) 

PARAMETERS
COUNT: the number of repetitions (not counting the original)
  Range: 1 to 100
STARTGAP: initial delay time - gap between start and first repeat
  Range: 0.04" to 10"
SHORTEN: multiplier applied to gaps. For example with 0.8, each gap would be 80% of the previous one.
  Range: 0.1 to 1 (no shortening)
ENDLEVEL: the final level, as a fraction of the initial level.
  Range: 0 to 1 (1 = no decay)
ENVWARP: amount of decrescendo at the start
  Range: 0.01 to 100 <1 is slower; >1 faster 
(SHRINK): minimum length of bounced elements, shrinking in the same proportion as the acceleration.
  Range: 0 to 1 secs. Set to zero for no shrinkage.

OPTIONS
 No overlap: do not let repeated elements overlap (to avoid clipping)
OR (NOT with:)
 Trim starts: shrink elements by trimming the start of each (instead of the end).
  ! This option has been omitted for now as it causes BOUNCE to hang and SOundshaper files not be erasable.

NOTE
A similar process SHRINK can also contract the gaps between repetitions, but it also shrinks the elements themselves by at least the same proportion. Its initial GAP must also be as long as the source: overlap of repeats is not available.

[2771] REPEATER R8 PROV.
REPEATER (CDP Rel. 8 - PROVISIONAL)

REPEATER is one of the simplest and most versatile of the many ways within CDP to repeat segments. The repeats are specified in a datafile consisting of Start-time, End-time, No. of repeats and finally either (Mode 1) the delay time between repetitions or (Mode 2) the gap time between them. This value has no effect in Mode 3, which produces fading repeats (but is fortunately not rejected as invalid). Element *times* can overlap, but note that each set of repetitions is laid down before the next one starts (which is not the same as simultaneous delays, as in a delay-line).  

In Mode 3 (only), ACCEL gradually shortens the delay time as skewed by WARP (>1 shortens less initially and more later), while FADE similarly skews the fade speed (<1 = slow then fast)

The other parameters are options for all three modes: RAND randomizes the delay/gap times, PCHRAND randomizes the pitch of the repeats and SEED ensures identical output with the same input and seed value.   

MODES
1. Delayed repeats
2. Gapped repeats
3. Fading repeats

PARAMETERS
REPEATS: datafile consisting of lines of 4 values:
1) Start-time of segment; 2) End-time of segment 3) No. of repeats
4) Mode 1 - the delay time between the start of one repeat and the start of the next; 0 = delay same as segment length
            delays <0.05" may sound more like an oscillator
   Mode 2 - the "offset" or gap-time between the end of one repeat and the start of the next
   Mode 3 - no effect: fades are determined by other parameters
  Range (times): 0.01 to file-length (seconds)
  Elements can overlap, or backtrack in the source (? earlier times are not accepted)

ACCEL (mode 3): degree of shortening of delay and segment by the end of the repeats
       e.g. accel = 2 gradually shortens delay to 1/2 its duration.
   Range: 1 to 10 (1=no acceleration)
WARP (mode 3): Warps delay change. 
   Range: 0.1 to 10 1=no warp; >1 shortens less initially + more later; <1 shortens more initially and less later
FADE (mode 3): Decay curve. 
   Range: 0.1 to 10  1=linear; <1 slow then fast decay ; >1 fast then slow decay
(RAND): randomise delay (T-V) - 
    Modes 1 & 3: extend each delay-time by a random multiple. Multiplier is generated within specified range (1 to 2).<br>
    Mode 2: extend each offset-time by a random multiple. Multiplier is generated within specified range (1 to 8).<br>
    Value 1 gives no randomisation.<br>
(PCHRAND): randomise pitch of repeats
  Range: 0 to 12 semitones (T-V)
(SEED): Repeated runs of the process with the same input and same seed value give identical output.
  Range: 1 to 256 (integer)

[2772] MOTOR R8
MOTOR (CDP Rel. 8 - PROVISIONAL):  Create pulse-stream within slower pulsed envelope (SINGLE or MULTI-SOURCE)

MOTOR creates a faster "inner" pulse-stream (at FREQ Hz) within a slower "outer" enveloped pulse (at PULSE Hz). Under every outer-pulse, a set of inner events are cut successively from the input sourc(es), as the outer-envelope rises, then in reverse order as it falls. The outer-pulse, shortened by PRATIO, must hold at least 2 inner-pulses. The relationship between the outer frequency PULSE and the inner one FREQ is not obvious, but Soundshaper attempts to warn you if PULSE is too high in relation to FREQ. 

The process handles single or multiple sources (modes 2,4,6).  Although there are many parameters, most are optional and the main difference is that Modes 7-9 use a file that specifies cut-times.

MODES
1,2 (CDP modes 1, 3) Widen frequency range (2 is multi-source) 
3,4 (CDP modes 4, 6) Source reads only advance (4 is multi-source)
5,6 (CDP modes 7, 9)  Source reads advance or regress (6 is multi-source)
7 (CDP mode 2) Use cut times: segments are cut at specified times (single-source)
8 (CDP mode 5) Source reads only advance; segments are cut at specified times (single-source)
9 (CDP mode 8) Source reads advance or regress; segments are cut at specified times (single-source)

PARAMETERS
CUTS (Modes 7-9): datafile of times to cut segments
OUTLENGTH: duration of output file
  Range: 1 to 7200 secs
FREQ: pulse-rate of inner-pulses 
  Range 2 to 100 Hz
PULSE: pulse-rate of outer-pulses 
  Range: 0.1 to 10 Hz
FRATIO: proportion of on to off time of inner events
  Range: 0 to 1 (default: 0.5)
FRATIO: proportion of on to off time of outer events
  Range: 0 to 1 (default: 0.5)
SYMMETRY: rise and fall shape of outer-pulse envelope 
  Range: 0 to 1: 0.5=symmetrical crescendo/decrescendo envelope 
         0=falling envelope (decrescendo) ; 1=rising envelope (crescendo)
         0.75=long cresc and short decresc.
(FREQRAND): randomize inner frequency
  Range: 0 to 1; max variation is f/2 to 3f/2
(PULSERAND): randomize outer pulse frequency
  Range: 0 to 1; max variation is p/2 to 3p/2
(JITTER): randomize pitch of inner pulses
  Range: 0 to 3 semitones
(TREMOR): randomize attenutation of inner pulses
  Range: 0 to 1 
(SHIFT): randomise outer-pulse symmetry
  Range: 0 to 1
(EDGE): length of decay-tail of inner-pulses: multiple of OUTLENGTH 
  Range: 0-20
(BITE): shape of outer-pulses 
  Range: 0.1 to 10, default=3
(VARY): randomly vary advance-step in source-read. 
  Range: 0-1
(SEED): different seed values give different randomised outputs 
  Range: 0-256

OPTIONS
 Fixed-step - only if VARY not set - inner-events advance by fixed step. (Default: advance to source-end)
 Cycle sources: Modes 2 + 7 only - cycle through input sources. (Default: randomly permutate order.)

NOTE
The predominant effect of MOTOR is a series of pulsed segments that follow the envelope shape (SYMMETRY) - e.g. rising to and falling from a peak if SYMMETRY=0.5. From the description, one might imagine that the outer pulse is repeated, but this is not the case. (You can loop-play the output in Soundshaper). Arguably the effect works better with a relatively continuous sound than an articulated one with its own rhythm (unless you want a conflict of rhythms).
 

[2773] ROTOR R8
ROTOR (CDP Rel. 8 - PROVISIONAL): Generate note-sets which grow & shrink in pitch-range and speed

ROTOR produces a shimmering type of noise that doesn't really match the program description. Some outputs give a pulsed effect; others are more continuous.

MODES
1 Time step separates note groups
2 Spacings within current set determine start of next group
3 Overlay: Note-set's first event overlaid on last event of previous set

PARAMETERS
OUTLENGTH: Duration of output soundfile 
  Range: 1-32767 secs; Soundshaper: 1 to 300", default 10" 
GROUPSTEP: Mode 1 - time-step between each note-group 
  Range: 1-60 secs 
ENVEL: breakpoint file of envelope (Time-Amp) imposed over output events; determines duration of all events.
  This can be any arbitrary envelope shape, or open one previously extracted as a breakpoint envelope (.env)
  Ranges: Time  - nominally 0 to file-length, but seems able to take longer values; Amp - 0 to 1
COUNT: no. of events in each note-set 
  Range: 3-127
MINPCH: minimum pitch of events
  Range: 0-127 (MIDI)
MAXPCH: maximum pitch of events (>MINPCH)
  Range: 0-127 (MIDI)
MAXSTEP: maximum time-step between event-onsets 
  Range: 0-4 secs
PCHROT: pitch rotation - no. of notesets before pitch-sequence returns to original 
  Range: 4-256
TROT: no. of speeds before speed returns to original
  Range: 4-256
PHASE: initial phase difference between pchrot and trot
  Range: 0-1
(DOVETAIL): start/end dovetails of input soundfile 
  Range: 0-5 mS
OPTION
 Stereo output - output grows and shrinks in stereo spatial width

NOTES:
 The input source is natively MONO, but Soundshaper can process a stereo or multichannel file.
 Try with a very short sound, such as extracted via WAVEFORM or PACKET
 Check the stereo option for a more interesting output
 The output might usefully drive either TUNE or VARIBANK.  


[2774] SORTER R8
SORTER (CDP Rel. 8 - PROVISIONAL): sort chopped elements by loudness or duration (LIMITED IMPLEMENTATION)

SORTER aims to cut elements from the source and re-orders them by size or loudness. Soundshaper implements this initially in a limited way, as there are issues which remain to be resolved - see the parameter list.  

There are five modes, as listed below. The main parameter is the SIZE of elements to be cut from the source. This can be time-varying, though the elements must not overlap (? t.b.c.). If zero, it uses individual wavesets.  

The other main parameter is the optional OUTPITCH, which causes elements to be output with separation equivalent to its MIDI pitch value. It is not entirely clear what this means, although wavesets are seen in other processes as having a frequency (see e.g. CYCFREQ). The higher this value, the faster the elements are output. (A suitable starting point might be <10.) 

There is enough variation here to generate all manner of jumbled re-orderings, though many of them arguably sound much the same.

MODES:
1. Sort to cresecendo - re-order elemnts by increasing loudness 
2. Sort to decresecendo - re-order elements by decreasing loudness 
3. Sort to accelerando - re-order elements so they speed up (if small, pitch may rise)
4. Sort to ritardando - re-order elements so they slow down (if small, pitch may fall)
5. Order randomly - organise elements in a random order

PARAMETERS
SIZE: approx. size of elements; if zero, use individual wavesets. 
  Range: 0 to file-length (T-V)
SEED (Mode 5): sames seed no. gives same random ordering on a re-run; 0= different each time
  Range: 0 to 256
(SPLICE): smooth fade-ins/outs of each element; ignored if SIZE=0
  Range: 0 to 50 mS
(OUTPITCH): output with separation equivalent to MIDI pitch 
  Range: 1 to 127 (MIDI), or 0 - ignored, or 128: use median pitch

The following are not currently implemented:
--------------------------------------------
(PITCH): if OPTION set, transpose to this MIDI pitch   
  If  NOT set, larger groupings are obtained by larger value of SIZE.
  Range: 1 to 127 (MIDI), or 0 - ignored, or 128: use median pitch
(GROUPSIZE): use only if PITCH and OPTION set: allows larger units to be (approx.) pitch-correlated.
        Source is first cut to pitch-wavelen-scale elements & transpositions calculated.
        These elements are then further grouped to (approx) GROUPSIZE.
        Must be larger than largest element (1/frq) from freq trace.
  Range: 0 to file-length secs ; 0 is ignored
OPTION
 Size as frequency: size is read as a frequency value 1/durantion: needed for use with PITCH and GROUPSIZE


NOTES:
The extra parameters have not been included because of the following recurring error messages - 
1) If SIZE is not time-varying, the following error is given, if PITCH is used:
     ERROR: Cannot transpose elements to a given pitch if sizedata is not time-varying frequency
2) If the OPTION (i.e. flag) is ticked, the following invariably occurs:
     ERROR: Elementsize (0.2) too big for infile. (If data's frq, set flag).
   This seems to happen whatever element size is used. 
 

[2775] STUTTER
STUTTER (CDP: stutter REL.8 - PROVISIONAL)

STUTTER randomly repeats segments cut from elements. The source sound (e.g. speech) is sliced into elements (e.g. words or syllables). Segments are cut from elements, always cutting from the start of the element. These are then played in a random order, with possible intervening silence and limited transposition at each segment. The process is also useful for extending a sustained sound (e.g. a note) by playing random portions of it.  

PARAMETERS
CUTS: text datafile of times to cut source sound into segments. 
  Range: 0-<file-length. Min. step between times: 0.016"; Max is file-length-Min.
OUTLENGTH: duration of output soundfile 
  Range: 0-7200"
SEGJOINS: no. of joined elements to use as sources (see notes)
  Range 1-8; 1: use the elements specified in CUTS; 2: use pairs of segments N: use N joined segments  
SILPROP: proportion of joins to have inserted silence 
  Range: 0-1; if >0, min. is 0.05 =1/20
MINSIL: minimum silence at joins 
  Range: 0-10 (not secs - mS?)
MAXSIL: maximum silence at joins; >=MINSIL
  Range: 0-10 (not secs - mS?) 
SEED: same seed value produces identical output for random values
  Range: 0-256 
(TRANSP): random transposition of segments, up or down 
  Range: 0-3 semitones 
(ATTEN): random attenuation of segment level (NB degree of attenuation, not element level)
  Range: 0-1 
(BIAS): bias the size of segments cut 
  Range: -1 to +1; <0 smaller; >0 larger; 0=none
(MINDUR): minimum length of cut segments 
  Range: >8mS to 250mS
OPTION
Permutate elements: all elements used; permutate order before cutting and playing new segments. Default: segments cut from elements taken entirely at random.

NOTES
 MIN/MAXSIL: could be mS - setting e.g. 10 certainly does not leave 10" gaps.
 The transposition range can be extended by running the process more than once. 


[2776] TESSELATE R8
TESSELATE (CDP Rel.8 - PROVISIONAL) - create repeating pattern with shift in space and time 

TESSELATE repeats a number of different sources with staggered start-times and projects these across stereo or multi-channel space. The whole of each source is used and is repeated over the course of the given outfile-length (OUTLENGTH), with overlapping as necessary. The delay-time between repeats (the same for each source) is set by CYCLEDUR. All sources start at different times (it objects if they're the same). The number of repeats and the starting times for each are given in the DATAFILE.

The pattern normally starts with all channels synchonized at time zero. 
As sounds are repeated they drift out of sync; this delay drift is projected across different channels, as set by the TYPE parameter. 
To start later in the pattern, specify a number of cycles in the FROM parameter (not working at the time of writing). 

PARAMETERS
DATAFILE: line 1 - number of repetitions of each source (can be different) wtihin the cycle duration (CYCLEDUR)
          line 2 - entry time of each source after start: must be different, but one can be 0. Each must be < CYCLEDUR.
  Example with three sources:
          5    5    5
          0.0  0.1  0.2   
OUTCHANS: number of output channels
  Range: 2 to 8 (even number only)
CYCLEDUR: the delay betwen repetitions;
  Range: 0.01 to 100 secs, but must be < OUTLENGTH
OUTLENGTH: duration of the output soundfile
  Range: 1 to 7200 secs   
TYPE: 0: Delay drift between odd and even channels (e.g. 1-v-2, 13-v-24, 1357-v-2468).
      1: Delay drift between adjacent channels  (1-v-2, 2-v-3, 3-v-4 etc).
      2: Delay drift between alternate channels (1-v-3, 2-v-4, 3-v-5 etc).
      3: Delay drift between every 3rd channel  (1-v-4, 2-v-5, 3-v-6 etc).
          and so on.
  Range: 1 to 8, but must be < OUTCHANS

(FROM):  ** APPARENTLY NOT WORKING ** (Flag not recognised)
        Cycle number at which to start the pattern. (Default: all chans in sync. at time 0) 
  (Range: 1 to 20) 

NOTES:
 Although the sounds are supposed to be different, the same source can in effect be used in Soundshaper, by copying it other rows. 
 The process is perhaps best explored using short sounds (such as single words) to appreciate the cross-rhythms it creates.
 Similar processes are POLYRHYTHMS (CDP: ceracu) and SHIFTER. 


[2777] Cascade - R8 - Prov.
CASCADE (CDP Rel. 8 - PROVISIONAL)

CASCADE echoes a given segment a number of times and mixes the echoes with the original soundfile (played 'straight'). Sadly, there is no way of adjusting the level of the echoes; nevertheless, the effect may be useful as a background 'gloss'. There are five mode choices, all spatial, plus the ability to select the echo segment by size (CLIPSIZE) or from a list of cut-times (CUT-TIMES), giving 10 modes overall. 

The segment size (in Modes 1-5) is set by CLIPSIZE or randomly between this and CLIPMAX. Similarly, the number of repetitions is set by ECHOES or randomly between this and ECHOMAX.  SHRED, SHRED-COUNT and the Option "Shred original clip" offer possibilities to garble the segments and echoes.

MODES:
1,6: Echo in the same channels (N channels in/out)
2,7: Pan to the right; original stays in left channel (stereo output)
3,8: Pan alternately between left and right channels (stereo output)
4,9: Step right: each echo steps right, to the next channel (8-chan. output)
5,10 Step right/left: echoes step alternately to the next right then next left channel (8-channel output)

PARAMETERS
CLIPSIZE (modes 1-5): (minimum) length of segment to echo
  Range: 0.005 to file-length secs (T-V)
CUT-TIMES (modes 6-10): textfile of successive times in source to cut segments 
    (needs further detail... not From/To - are they a-b, c-d, e-f?)
  Range: 0 to file-length of source (secs)
ECHOES: (minimum) number of echoes of segment
  Range: 1 to 64 (T-V)
CLIPMAX (modes 1-5): maximum size of segment to echo; if >0, segment size random value between CLIPSIZE and CLIPMAX
  Range: 0 (ignored) to file-length  (>CLIPSIZE, T-V)
(ECHOMAX): maximum no, of echoes; if set, no. is chosen randomely between ECHOES and ECHOMAX
  Range: 0 (ignored), 1 to 64 (>ECHOES, T-V)
(RAND): randomize timesteps between echoes
  Range: 0 to 1
(SEED): same number gives identical re-run with same randomized values
  Range: 0 to 64
(SHRED): Cut previous echo into SHRED parts and shuffle them ; also set SHRED-COUNT
  Range: 2 to 16
(SHRED-COUNT): Number of shreds to do to create next echo; only if SHRED set
    Range: 1 to 16

OPTIONS: 
 Also shred original clip - only valid if SHRED and SHRED-COUNT set
 Linear decay: echoes decay linearly in level; default log decay
 Normalise output if low; high output normalised by default

NOTE:
The program is an alternative to ITERATE, ECHO (stadium echo), and DELAY


[2778] [2779] SegEnv (envspeak) - R8 Prov.
SEGENV(CDP: envspeak Rel.8) - PROVISIONAL
SEGENV manipulates segments cut from the source. These are found by envelope or by cut times. As each has the same 12 modes, Soundshaper splits them into two separate but paired processes (CDP modes 1-12 and 13-24).

The modes cover a diverse range of options to manipulate segments: from simple repetition of segments to reversal, attenuation, shrinking and random selection. Some of these duplicate functions found elsewhere in the CDP suite (further details needed...). In many ways, then, SEGENV may be suitable as a single solution for these different functions.

Mode 10 Extract all: segments are extracted to separate files within your \TEMP folder, but are NOT placed on the patchgrid.
The files are numbered (<outfile>+001, 002... wav). This option may be more useful if the CutTimes version is used.

If CutTimes are used, care should be taken not to make the gaps too short in the times-file. (The program tends to generate an error-message to the effect that SPLICE is too long, but even reducing this to the minimum doesn't cure the issue.)

MODES
1.  Repeat segments: repeat each segment REPEAT times
2.  Reverse repeat: each segment played forwards then backwards
3.  Attenuate group: attenuate ATTENCT segments in every ATTENCT+1 segments
4.  Attenuate except: attenuate all in every ATTENCT+1 segments except ATTENCT
5.  Repeat shrinking from end: repeat each segment REPEATS times, shrinking from end
6.  Repeat shrinking from start: repeat each segment REPEATS times, shrinking from start
7.  Repeat divided segment: divide segments into DIV parts and repeat one part DIV times
8.  Repeat shortening at end: repeat each segment, shortening each repetition from end
9.  Repeat shortening at start: Repeat each segment shortening each repetition from start
10. Extract all: extract all enveloped segments to separate files
11. Random re-order: randomly reorder segments
12. Reverse group order: reverse segment order within groups, according to GROUPSIZE. (Segments themselves are NOT reversd.) 

PARAMETERS
WINDOW SIZE: size of envelope search window. Range: 5 to 1000mS; default 50mS
 OR
CUTS: datafile of infile times to cut into segments. Range: >0 to <infile-length (exclude 0 and end-time)
- - - - -
SPLICE (all odes): length of splice slope
  Range: 2 to 100 mS; default 15mS 
OFFSET (modes 1-9): no. of initial peaks to output unchanged
  Range: 0 to 100
REPEATS (modes 1,5,6,8,9): no. of repetitions of each segment 
  Range: 2 to 100 (T-V)
ATTENCT (modes 3,4): no. of segments to attenuate (Mode 3) or NOT attenuate (Mode 4) in group of ATTENCT+1
  Range: 1 to 100 (T-V)
ATTEN (modes 3,4): reduce attenuatated segments
  Range: 0 (no atten.) to -96dB (fractions are allowed) (T-V)
DIV (mode 7): number of parts into which to divide segment, to repeat it DIV times 
  Range: 1 to 100
PART (mode 7): which part of divided segment to repeat (1 to DIV)
  Range: 1 to 100 (<= DIV) (T-V)
RAND (modes 1,5,7,8,9): randomize lengths of repeated units
  Range: 0 to 1 (0= no randomization)
RATIO (modes 8,9): reduce lengths of repeated units by this ratio; smaller = greater reduction (e.g. 0.5 = 1/2 length)
  Range: 0.1 to 1  (1= no reduction)
SEED (mode 11): same seed number gives identical output on a re-run (0=fully random)
  Range: 0 (no effect) to 100
GROUPSIZE (mode 12):  number of segments in group, to reverse order (e.g. val.3: abc|def --> cba|fed)

OPTION (mode 7 only)
 Same-size repeats (do not change in length)

NOTES:
Despite the large number of modes and parameters, this program is one of the more "controllable" of CDP's many repetition processes. For example, the times-file option can be used to extract specific segments to different files or repeat (or reverse) selected segments. 

(t.b.c.: other related processes ...)

[2780] Clip - R8 Prov.
CLIP (CDP Rel. 8 - PROVISIONAL) - Level menu

Clipping cuts off the top of a waveform when the level exceeds 100%, introducing distortion. 

In Mode 1, LEVEL sets the level at which to clip the signal. LEVEL acts as a gate value: if too high, an error message may remind the user that the signal never reaches that level. If set lower, the signal is raised (or appears to be raised) so that all values that exceed that level are clipped. (In many cases, this may not result in an obvious distortion, because most of the signal may be unclipped.)

In Mode 2, half-waveforms are clipped at a given FRACTION of the original. This seems to give a more obvious distortion, even though the signal level appears to change little. Again, a lower value produces more clipping and more distortion.  (Further detail is needed about this mode...) 

MODES
1. Clip at given level in original
2. Clip signal at given fraction of the original

PARAMAETERS
LEVEL (mode 1): level at which signal is clipped
  Range: 0 to 1
FRACTION (mode 2): clip half-waveforms at given fraction of the original
  Range: 0 to 1 (1 = original)

NOTE:
Further detail is needed about Mode 2.

[2781] DvdWind R8 Provisional
DVDWIND (CDP Rel. 8 - PROVISIONAL)  

DVDWIND shortens the sound by skipping portions, simulating the way information is skipped in a CD/DVD when fast-forwarded.

PARAMETERS
CONTRACT: time-contraction of the input.
  Range: Range: >1 to 3600
CLIPLENGTH: duration of each retained clip (mS).
  Range: 10 to 2000 mS


[2783] Quirk/Power R8 Prov.
POWER (CDP: quirk Rel. 8 - PROVISIONAL)

POWER introduces distortion into a signal by raising sample values to a power.  The power factor (POWER) is applied to individual half-wavesets (pseudo half-cycles) or to the whole file. POWER values less than 1 tend to flatten the tops of the waveform, while values >1 tend to narrow the waveform shape, modifying the timbre accordingly. With higher values of POWER (e.g. >5), the signal is in danger of disappearing altogether; however, this is also a simple means of finding the times of its most prominent peaks.

MODES
1. Half-wavesets: apply power factor over amplitude range of individual half-wavesets.
2: Entire signal: apply power factor over amplitude range of entire signal.

PARAMETER
POWER factor: exaggerates or smooths the signal contour
  Range:  0.01 to 100. < 1: exaggerates; <1 smooths (Soundshaper's range may be exceeded.)

NOTE
This is a renewed version of a very early CDP program, POWSF, which also raised the signal to a power. In this version, the power factor can be applied to individual half-wavesets as well as to the whole signal. CROSSMOD (Pitch Menu) produces similar distortion, if the signal is multiplied with itself.


[2783] Verges - R8 Prov.
VERGES (CDP Rel. 8 - PROVISIONAL) - Play source with brief moments of glissando

VERGES introduces a glissando up or down at the times specified. The normal operation would be to extract a set of times matching elements in the source.

The DURATION, degree of transposition (TRANSP) and speed of the glissando (EXP) can all be set. 


PARAMETERS
TIMES: datafile of times to introduce the glissando
(TRANSP): degree of transposition of the glissando 
  Range: -24 to +24 semitones
(EXP): slope of glissando - higher glisses faster
  Range: 1 to 8
(DURATION): length of glissandi (mS)
  Range: 20 -1000 mS, default 100mS

OPTIONS
Exact times: use exact times; default: use peak nearest to given time
Boost: boost level of verges
Suppress: suppress all input except verges, and boost verges

[2810] Waveform R8
WAVEFORM (CDP Rel. 8 - PROVISIONAL): generate wavetable from existing sound

Waveform generates a wavetable cut from an existing sound or imposed on a sine wave.

MODES
1 Cut at time - extract group of half-wavesets at specified infile time 
2 Cut at duration - extract given duration, cutting at zero-crossings 
3 Impose sine - duration-segment is superimposed on a sine tone

PARAMETERS
TIME: time at which to cut 
  Range: 0 to file-length secs
COUNT (mode 1): no. of half-wavesets to extract
  Range: 1 to 256
DURATION (mode 2,3): duration of sound-clip to extract (mS)
  Range: 1 to 10000 mS
BALANCE (mode 3): level of extract relative to imposed sine
  Range: 0.001 to 1

NOTE
The wavetable clip can be fed into Fractal Wave (Mode 2). The process is akin to PACKET, which also extracts small clips - which might be used in TEXTURE, for example.

[2811] FractalWave R8
FRACTALWAVE (CDP Rel. 8 - PROVISIONAL): fractally distort input sound or wavecycle

In Mode 1, FRACTALWAVE distorts the whole soundfile by adding transposed versions of SHAPE data. In Mode 2, where the input is a wavecycle, it generates fractals using MIDI-pitch data (SHAPEPCH) to define the pitch shape.  Both versions of the shape are timed.

The process may best be understood by taking a steady-pitched source and experimenting first with Mode 1, then extracting a wavecycle from the source using WAVEFORM and applying it to Mode 2.

In Mode 1, the output length is conditioned by the infile; in Mode 2, it is supplied by the user (<i>dur</i>).  The fractal pattern may optionally be timestretched (STRETCH) and/or interval-warped (WARP).

MODES
1 Fractally distort soundfile by transposition
2 Generate fractal wave from (mono) input wavecycle

PARAMETERS
SHAPE: Breakpoint file of time-transposition pairs, defining contour of largest fractal shape 
  Time: 0-file-length (secs) and transposition: -12.0 to +12.0 (semitones)
SHAPEPCH: Breakpoint file of time and MIDI-pitch pairs, defining fractal shape 
  Time: 0-file-length (secs); final value gives pattern duration. MIDI: 0 to 127
OUTLENGTH: Duration of output soundfile 
  Range: 1-7200 secs
(MAXFRAC): Maximum degree of fractalisation (T-V).
  Range: 0-1000 (Soundshaper range 0-10, restricted to avoid "too high MIDI pitch" error)
(STRETCH): time stretch of fractal pattern (T-V)
  Range: 1.0 to 2.0
(WARP): Interval warping of fractal pattern (T-V) 
  Range: 0 to 8

OPTIONS
 Shrink pitch intervals as fractal time-scales shrink
 Outfile times: breakpoint data gives times in outfile (Default: use times in infile)

NOTE:
There is also a spectral version SPECFRACT (CDP: fractal spectrum).

[2820] SpinStereo R8
SPINSTEREO (CDP Rel. 8 - PROVISIONAL): Spin a wide-stereo image across stereo/multichannel space

SPINSTEREO: a stereo sound is rotated within stereo (Mode 1) or multichannel space (Modes 2/3), with optional Doppler Shift. Soundshaper will accept mono input, but alters its patchgrid copy of the source to stereo (see Notes).  (The Doppler effect can be heard when a police-car siren passes you at speed.)

In Mode 1, the main parameters are RATE (of spin, in Hz) and DOPPLER (in semitones).

Modes 2 and 3 produce a 3-channel-wide spin within multichannel space, which must be at least 4 channels wide (OUTCHANS). The central channel (CENTRECHAN) clearly must be less than OUTCHANS.

MODES
1. Spin within stereo
2. 3-channel wide (using outer channels)
3. 3-channel wide (using only centre channel)

PARAMETERS
RATE: speed of rotation in cycles-per-sec.
  Range: -100 to +100 Hz (neg. values give anti-clockwise spin)
OUTCHANS (Modes 2 and 3): Number of output channels
  Range: 4 to 16
CENTRECHAN (Modes 2 & 3): Central channel of the 3-channel output
  Range: 1 to OUTCHANS (max 16)
DOPPLER: pitch shift.
  Range: 0 to 12 semitones, poss. fractional
XBUF: multiply size of buffer for Doppler effect
  Range: 1 to 64; default 1 (no change)
(BOOST): optional boost of level as it passes front channel
  Range: 0-16
(ATTEN): optional attenuation of level as it passes through the centre channel
  Range: 0-1 (1= no attenuation)
(CENTREMIN): minimum level on the central channel
  Range: 0-1, <=CENTREMAX
(CENTREMAX): maximum level on the central channel
  Range: 0-1, >=CENTREMIN

NOTES:
MONO input: at the time of writing, Soundshaper alters a mono input to stereo before processing. Re-running the process can give problems, because the infile channel-count is not currently changed. Hence the inbuilt Mono-to-stereo conversion is still applied and complains that the file is already stereo!

SPINSTEREO is closely related to SPINQUAD, which spins two stereo sounds around multi-channel space.


[2821] SpinQuad
SPINQUAD (CDP Rel. 8 - PROVISIONAL): spin two wide-stereo images across multichannel space

SPINQUAD: Two stereo sounds are rotated around multichannel space, with optional Doppler Shift. 
For this process, Soundshaper will convert a first mono source to stereo, but not the second, which must already be stereo.

RATE determines the speed of rotation (in Hz) and DOPPLER any pitch-shift (in semitones).

The program produces a 5-channel-wide spin within multichannel space, which must be at least 5 channels wide (OUTCHANS). The central channel (CENTRECHAN) clearly must be less than OUTCHANS. 

MODES
1. Spin within stereo
2. 3-channel wide (using outer channels)
3. 3-channel wide (using only centre channel)

PARAMETERS
RATE: speed of rotation in cycles-per-sec.
  Range: -100 to +100 Hz (neg. values give anti-clockwise spin)
OUTCHANS: Number of output channels
  Range: 5 to 16
CENTRECHAN: Central channel of the 5-channel rotation output
  Range: 1 to OUTCHANS (max 16)
DOPPLER: pitch shift. (The Doppler effect can be heard when a police-car siren passes you at speed.)
  Range: 0 to 12 semitones, poss. fractional
XBUF: multiply size of buffer for Doppler effect
  Range: 1 to 64; default 1 (no change)
(BOOST): optional boost of level as it passes front channel
  Range: 0-16
(ATTEN): optional attenuation of level as it passes through the centre channel
  Range: 0-1 (1= no attenuation)
(CENTREMIN): minimum level on the central channel
  Range: 0-1, <=CENTREMAX
(CENTREMAX): maximum level on the central channel
  Range: 0-1, >=CENTREMIN

NOTES:
MONO input (Source 1 only): at the time of writing, Soundshaper alters a mono input to stereo before processing. Re-running the process can give problems, because the infile channel-count is not currently changed. Hence the inbuilt Mono-to-stereo conversion is still applied and complains that the file is already stereo!

SPINQUAD is closely related to SPINSTEREO, which spins a single stereo sound around stereo or multi-channel space.

[2831] Crumble R8
CRUMBLE (CDP Rel. 8 - PROVISIONAL): project segments spatially with possible timestretch

CRUNBLE projects MONO segments over progressively smaller groups of channels in multi-channel space, with possible timestretch. Specifically, it projects the source onto all channels, then segments it and distribute the segments over smaller and smaller groups of channels. The choice is limited to 8-channel or 16-channel output, but this can be reduced afterwards by PAIREX (extract stereo pairs) or CHANNELX (extract single chans) plus optional interleaving (INTERLX).

MODES
1 8-channel output
2 16-channel output

PARAMETERS
START: time in infile to start crumbling 
  Range: 0 to <filelength (secs)
DURATION 1/2/3: length of section where signal is split into 2/4/8 images (secs).
  Duration 3 is for Mode 2 only.
  Range: 0 to <file-length (secs), but START and DURATION must not exceed file-length
ORIENT: Channel number - input image first splits into 2 blocks each of outchans/2  adjacent chans.
        (1) chan ORIENT with adjacent clockwise channels,
        (2) remaining channels.
  Range: 1 to 8 (mode 1) or 1 to 16 (mode 2)
SIZE: Average length of segments (T-V)
  Range: 0.01 to file-length (secs)
RAND: Randomise segment size (T-V)
  Range: 0-1; Maximum 1 modifies SIZE randomly between SIZE/2 and (3*SIZE)/2
INSCATTER: degree of scattering of start-time of next segment (T-V)
  Range: 0 to 1
OUTSCATTER: scattering of out-time  of segment used (T-V)
  Range: 0 to 1
  Time in output always advances.  With no scatter, step to next output-time = length of last segment cut.
  With maximum OUTSCATTER(=1), step by random time between >0 and previous-segment length.  
STRETCH: stretch time-placement in output (T-V)
  Range: 1 to 64 
PCHVARY: vary pitch of output segments (T-V)
  Range: 1-48? (semitones) 
SEED: same seed value gives identical output on successive runs
  Range: 1 to 256
(SPLICE): Length of splice slope used to cut segments 
  Range: 2-50 mS
(TAIL): Length of any exponential tail on segments (T-V)
  Range: 0 to 50? mS

//-------- MULTI-CHANNEL TOOLKIT --------- 

[301]  Reverb
REVERB (CDP: reverb)
 
Reverberation is the result of many (overlapping) echoes of the sound reflected off the available surfaces. 
The overall parameter is Reverberation Time (REVB TIME), normally defined as the time taken for the reflections to decay by 60dB below the level of the direct sound. 

A key aspect of reverb. is the time-delay between direct sound and the first reflection, indeed the early reflections in general: the program uses built-in sets for small, medium and large rooms, but they can be optionally entered in a datafile (EARLYREF parameter) created by the separate ROOMRESP program. Their level is also critical: set in EARLYGAIN (see NOTES for details).  

The balance of direct ('dry') versus reflected sound ('wet') is also crucial, set by MIX. At the front of a hall, we hear more of the direct sound; at the back, more reflected, but we might want to catch mostly reflected sound via REVERB and mix in the direct sound separately, e.g. on different channels. For a typical 'small hall', MIX should be betweeen 0.6 and 0.8, corresponding to a listener relatively close to the source.

The extra time taken for the sound to decay is entered in TRAIL: the program does not calculate this for you; enter a TRAIL time and edit the excess silence afterwards.

ABSORB sets the level of high-frequency damping: soft materials (fabrics, audiences, wood etc.) absorb high frequencies while hard surfaces reflect them. High absorption results in a short reverb time. (Set REVB TIME to reflect this!) Other filtering is provided by an initial LOWPASS filter, and the parallel HIGHCUT (= low-pass) and LOWCUT (= high-pass) parameters (see NOTES for further details).  

The optional PREDELAY time-shifts the early reflections to give the effect of a bigger room, useful when simulating large spaces where the listener is close to the source. 

Finally, for multi-channel use, CHANNELS sets the number of output channels.

PARAMETERS
EARLYGAIN: Level of early reflections.
  Range: 0.0 to 1.0
MIX: Balance of wet(reverb) to dry (source). 
  Range: 0.0 (wet) to 1.0 (dry) 
REVB TIME: Reverberation time  - how long sound takes to decay by 60dB, typically <1" for speech/small room; 2.5" to 3.5" for music; 5-8" cathedral.  
  Range: 0.01 to 100 secs
ABSORB: Degree of high frequency damping by sound-absorbent surfaces.
  Range: 0.0 (none/off) to 1.0 (max.); typically 0.3 (hard surfaces) to 0.7 (soft furnishings)
LOWPASS: Low-pass filter cutoff freq. applied at input to reverb.
  Range: 0-14700 Hz;  0 = off; typical values between 5000 and 10000 Hz.
TRAIL: Extra time added to outfile for reverb tail, for sound to decay completely.
  Set this esp. if source sound continues to end of file. 
  Range: 0-100 secs
(DELAYTIMES): Datafile list of delay times for 6 comb and 4 allpass filters.
  The internally preset times used are: 50 56 61 68 72 78 20 14 9 6 (msecs).
  Range 0-2000 msecs
(CHANNELS): Number of channels in outfile. 
  Range: 1-16; default 2
(EARLYREF): Breakpoint file of early reflections created by ROOMRESP program.
  If not set, the program uses predefined sets for the following room sizes:
     SMALL:   0.0 to 0.6 secs. (reverb. time)
     MEDIUM:  0.6 to 1.3 secs.
     LARGE:   > 1.3 secs 
  Range: 0 to 1(?) secs
(HIGHCUT): Cut-off freq. of high-cut filter applied to infile (Reduction: 6dB per octave)
  Range: 0-20000 Hz.
(LOWCUT): Cut-off freq. of low-cut filter applied to infile (Reduction: 12dB per octave)
  Range: 0-20000 Hz.
(PREDELAY): Force reverb. pre-delay; shifts early reflections. 
  Range: 0-2000 ms.

 OPTION: Floating-point output (default: same as infile). 

NOTES
REVERB implements the now classic Schroeder/Moorer model, consisting of six comb filters in parallel, followed by four allpass filters in series. The comb filters generate the dense reverberation, and the allpass filters (with much shorter delay times) apply further smearing of the echoes to minimize the spectral colouration of the comb filters. A further allpass is applied to each output channel, each with a different randomly-chosen delay time.  Each comb filter contains a simple low-pass filter to simulate high-frequency absorption - this also affects the overall reverberation time. 

EARLYGAIN  the relative level of the early reflections has a marked impact on the intensity and colour of the reverb. The value set depends somewhat on the general level of the early reflections:
 values between 0.2 and 0.5 will produce a natural-sounding range between 'warm' and 'bright'.
 If the level is set very low, the reverb will consist mostly of the dense reverberation, which will also tend to fade more quickly, as it is receiving less energy from the early reflections.
 On the other hand, setting EARLYGAIN high will impart not only increased energy into the reverb (hence louder and longer) but also increased colouration.
 Adjusting EARLYGAIN is especially important if importing custom EARLYREF data. 

LOWPASS: reverberation typically loses the high-frequency components of a sound. Much of this is controlled by ABSORB, but it can be useful to limit high frequencies at input, especially if the source is synthetic. Also, as high frequencies tend to be lost with increasing distance, setting LOWFREQ (plus HIGHCUT - use a higher freq. for this) can suggest a distant source (e.g. in open air). 

[302]  Roomverb
ROOMVERB (CDP: rmverb): multi-channel reverb. with room simulation 

ROOMVERB has similar parameters to REVERB, but operates differently (see NOTES). Instead of REVB_TIME, ROOMSIZE and FEEDBACK control the overall reverberation time.
For other parameters, see REVERB.

PARAMETERS
ROOMSIZE: Size of room: 1 - SMALL, 2 - MEDIUM or 3 - LARGE
EARLYGAIN: Level of early reflections.
  Range: 0.0 to 1.0
MIX: Balance of wet(reverb) to dry (source). 
  Range: 0.0 (wet) to 1.0 (dry) 
FEEDBACK: Proportion of sound fed back to input; determines length of decay. 
  Range: -1 to +1)
ABSORB: Degree of high frequency damping by sound-absorbent surfaces.
  Range: 0.0 (none/off) to 1.0 (max.); typically 0.3 (hard surfaces) to 0.7 (soft furnishings)
LOWPASS: Low-pass filter cutoff freq. applied at input to reverb.
  Range: 0-14700 Hz;  0 = off; typical values between 5000 and 10000 Hz.
TRAIL: Extra time added to outfile for reverb tail, for sound to decay completely.
  Set this esp. if source sound continues to end of file. 
  Range: 0-100 secs
(CHANNELS): Number of channels in outfile. 
  Range: 1-16; default 2
(EARLYREF): Breakpoint file of early reflections created by ROOMRESP program.
  If not set, the program uses predefined sets for the following room sizes:
     SMALL:   0.0 to 0.6 secs. (reverb. time)
     MEDIUM:  0.6 to 1.3 secs.
     LARGE:   > 1.3 secs 
  Range: 0 to 1(?) secs
(HIGHCUT): Cut-off freq. of high-cut filter applied to infile (Reduction: 6dB per octave)
  Range: 0-20000 Hz.
(LOWCUT): Cut-off freq. of low-cut filter applied to infile (Reduction: 12dB per octave)
  Range: 0-20000 Hz.
(PREDELAY): Force reverb. pre-delay; shifts early reflections. 
  Range: 0-2000 ms.

OPTIONS:
 Double damping: apply double lowpass damping (see ABSORB). Reduces reverb time; increase feedback to compensate.
 Floating-point output (default: same as infile). 

NOTES
The program operates very differently from REVERB. Rather than use comb filters in parallel, ROOMVERB uses a variable network of 'nested' allpass filters inside an overall feedback loop. This has the effect of increasing the density of the reverberation over time, as is characteristic of most 'real' acoustic spaces. It is therefore dedicated more specifically to that task than is REVERB. Nevertheless, as the ROOMSIZE and FEEDBACK parameters are independently controllable, some unusal effects can still be created. 

For authentic reverb, it is important that the FEEDBACK level is not set too high, otherwise audible pulsations can be heard at the start of the reverberation. These can be mitigated to a degree by running ROOMVERB several times in parallel, with slightly different reverb times, and mixing the results, or combining into a multi-channel file. Conversely, it is also possible to create an 'infinite reverb' effect by setting the feedback level to 1.0.

[303] Tapdelay
TAPDELAY: delay line with multiple delay times

TAPDELAY is a delay line with user-selected delay times (taps). In a standard delay line (e.g., 1 second long) the ouput is taken at the end, whereas in a tapped delay line, extra outputs are also taken at intermediate points (e.g. 0.1 secs, 0.3 secs and 0.75 secs). 

The tap times are given in a text datafile (taps.txt - see TAP parameter), consisting of lines of tap-time (e.g. 0.1) and amplitude (e.g. 0.2). Optionally a pan position can be added (Mode 2); in this case the outfile will be stereo.

Without FEEDBACK, the tap times would apply a simple rhythm to the input sound. When FEEDBACK is applied, each of these tapped signals is returned to the input, so that each then generates further delays in the same pattern.

PARAMETERS
TAP GAIN: Gain factor applied to output from delay line. Use to avoid overflow. 
  Range: 0.01 - 10.0 (>0, typically 0.25)
FEEDBACK: Proportion of sound fed back to input; determines length of decay 
  Range: -1 to 0 to 1.0  (neg. values are phase-inverted).
MIX: Proportion of source mixed with delay output. 
  Range: 0.0 (delay only) to <1.0 (source only)
TAPS: List of taps as TIME AMP pairs, e.g.:
	0.1  	 0.2
	0.3 	 0.9
	0.75 	 0.05
	1.0 	 1.0
 Times must increase; duplicate times are ignored
 A zero time (no delay) overrides the mix parameter and determines the level and pan of the (mono) input.
 AMP range: 0.0 to 1.0
Optionally, PAN positions can be added to a TAPS line. If at least one is added, the ouput will be in 
stereo.
  PAN: -1.0 (Left) to 0 (Centre) to +1.0 (Right); values beyond -1 and +1 are attenuated to suggest distance beyond the speakers.
TRAIL: Extra time (secs) added to outfile for reverb to play out

 OPTION: Floating-point output (default: as infile)

NOTES
TAPDELAY is most suitable for use with short impulsive sounds such as plucked strings and percussion. A variety of regular and irregular mono or stereo multiple echoes can be generated. A single tap can be used, to throw an echo to a position in the stereo field. 

Though you can edit TAPS in GraphEdit, note that the PAN field must be added manually in the edit memo. TAPS is not a true breakpoint file: no intermediate times and positions are calculated and note also the special meaning of TIME=0 (which GraphEdit will add), which overrides MIX; you may wish to delete this line before running.

There is no limit on the maximum delay, or the number of taps that can be specified. However, large numbers will demand more processing time and large delay times may exceed available memory. 

Short delay times combined with feedback can create a variety of quasi-reverberant effects (see also ROOMRESP). Longer tap times with feedback can generate chaotic (and possibly over-range) outputs quite quickly. It is not advisable to use TAPDELAY to create reverb, as this is effectively a process of convolution, which with many hundreds or even thousands or calculations per sample, will take a very long time! For this task, ROOMVERB or REVERB is much more suitable; in these progams the same tapped delay line system is used, for early reflections.

[304] Roomresp
ROOMRESP (CDP: rmresp): generate early-reflection data for REVERB programs (DATAFILE OUT)

ROOMRESP (Room Response) outputs a breakpoint datafile containing early reflections, suitable for use in REVERB, ROOMVERB or TAPDELAY. The datafile (default "earlyref.brk") is sent to your User Folder. (The first output time is non-zero.)  The number of reflections generated from each surface is set in REFLECTIONS, while LIVENESS determines their amplitude. 

The room model used is a simple rectangular shape, with parallel walls.  Dimensions are entered for the room (length, width, height); also give the source position (length, width, height) and the listener's position (length, width, height). Typical values (in metres) for a medium room might be:
ROOM: 		length = 20 	width = 11 	height = 3.5
SOURCE: 	length = 4.5 	width = 5 	height = 2.5
LISTENER: 	length = 17 	width = 6 	height = 2

PARAMETERS
LIVENESS: degree of reflection from each surface. If set low, many of the amps generated will have very low amplitudes; as these would be submerged in the dense reverberation, they may be deleted from earlyref.brk to save processing time.
  Range: 0 to 1; typical value: 0.95.
REFLECTIONS: Number of reflections from each surface.
  Warning: high values will create extremely long data files!
  Range: 0-10;  normally > 0. Typically 2-5; 5 generates approximately 876 taps.
ROOML: Room length  / ROOMW: Room width / ROOMH: Room height
  Range of each: 0-50 metres
SOURCEL: Position of source sound - length (metres) (<= Room length)
SOURCEW: Position of sound source - width (metres)  (<= Room width)
SOURCEH: Position of source sound - height (metres) (<= Room height)
  Range of each: 0-50 metres
LISTENERL: Position of listener - length (metres) (<= Room length)
LISTENERW: Position of listener - width (metres)  (<= Room width)
LISTENERH: Position of listener - height (metres) (<= Room height)
  Range of each: 0-50 metres
(MAXAMP): Peak amplitude for data 
  Range: 0 to 1; default 1.0
(RESOLUTION): Time resolution for reflections. 
  Range: 0.1 to 2 msecs; default 0.1

NOTES
Reverberation arises when a sound, as well as reaching listeners directly, also reaches them after bouncing several times off one or more surfaces (floor, walls, ceiling). Depending on the degree of reflectivity or liveness of these surfaces (e.g. stone walls reflect almost all the sound, whereas soft furnishings reflect much less) many or few reflections will reach the listeners, who will perceive discrete echoes or a smooth ambience, and a longer or shorter reverberation time.

Since the room model assumes parallel walls, it is possible for reflections to form regular patterns. For smooth reverberation this needs to be minimised; this can be achieved by placing the listener (and possibly the source too) assymetrically in the room  i.e., not equidistant between two walls. On the other hand, it is easy to generate the sorts of highly coloured reflections experienced in bathrooms, tanks and similar spaces. 

The amplitude of the output taps is normalized to 1.0. The data can be evaluated by applying it to TAPDELAY, and once a satisfactory level is found (using TAPGAIN parameter in TAPDELAY), this can be used with the MAXAMP parameter to generate a suitable new data file for the reverb programs. 

[308] Copysfx
COPYSFX: copy soundfile and optionally convert format

COPYSFX copies and converts soundfiles. Soundshaper uses COPYSFX to copy/convert all source soundfiles to an internal .wav format. COPYSFX supports .wav and .aif formats and their variants (but not other popular formats like .mp3). The X in the title refers to Microsoft's WAVE_EX file-types, which specify various speaker positions. Also supported is  WAVE_EX Ambisonic B-format and the corresponding .amb extension.

The infile should be a .wav or .aif soundfile adhering to the standard format and the 
outfile is a wav or aif soundfile. By default, the outfile has the format of the infile (and this applies to CDP processes in general).

By default, COPYSFX writes a full CDP header which includes a PEAK chunk. This stores the position and value of the first absolute maximum sample in each channel, together with a timestamp. Alternatively, a simple header with no extra chunks can be written.

Further details on COPYSFX can be found in the CDP manual for the Multi-channel toolkit.

PARAMETERS
(SAMPLETYPE): Force output sample type to type N.
Available sample types:
   1. 16-bit integers (shorts)
   2. 32-bit integer (longs)
   3. 32-bit floating-point
   4. 24-bit integer 'packed' (WAV only: AIFF/AIFC written as Type 4) 
Default: format of infile
(FORMATOUT): Write outfile format as type N
Possible formats:
   0. standard soundfile (.wav, .aif, .afc, .aifc)
   1. generic WAVE_EX (no speaker assignments)
   2. WAVE_EX mono/stereo/quad(LF, RF, LR, RR) NB: the number of channels of the infile must match.
   3. WAVE_EX quad surround (L, C, R, S) NB: the infile must be quad
   4. WAVE_EX 5.1 format surround NB: the infile must be 6-channel
   5. WAVE_EX Ambisonic B-format (W, X, Y, Z ...) NB: the .amb extension is supported
   6. WAVE_EX 5.0 Surround NB: the infile must be 5-channel
   7. WAVE_EX 7.1 Surround NB: the infile must be 8-channel
   8. WAVE_EX Cube Surround NB: the infile must be 8-channel
 Types 1 to 5 are for WAV format only. 
Outfile is a .wav or .aif soundfile. 
Default in all cases: outfile has the format of the infile.
(MINHEADER): Write minimum header
  Values: 
    0 = minimum (no extra data)
    1 = PEAK data only
    Default (parameter not chosen): produces a full CDP header with PEAK data.

OPTIONS
 Dither: apply TPDF (2-LSB triangular) dither to a 16-bit outfile
 Write minimum header (no extra data);  Default: produces a full CDP header 

[309] GetChans
GETCHANS (CDP: channelx): extract specified channel(s)

GetChans extracts the specified channels only, extracting these to separate files and placing them on the Patchgrid where possible. 
A pop-up text edit box asks you to enter the numbers of the channels, separated by space(s).

[311] MchMixTwo 
MCHMIXTWO (cdp: nmix): simple mix of files with same channel-count

MchMixTwo offers a simple mix of two mono, stereo or multichannel files, with an optional time OFFSET. The files must all have the same channel-count.

PARAMETER
(OFFSET): delay Infile2 by OFFSET seconds.
  Range: 0 to ? seconds (Soundshaper's max. is Infile 1 length, but this can be exceeded.)

[312] Ambipan
AMBIPAN (CDP: abfpan/abfpan2): ambisonic rotation
 
AmbiPan generates a fixed or simple periodic rotating pan around the listener, using ambisonic encoding. Mode 1 employs 1st-order B-Format (horizontal), while Modes 2 and 3 employ 2nd-order B-Format encoding: horizontal in Mode 2 and periphonic in Mode 3.  If ambisonics and its terminology mean nothing to you, you are advised to read the available literature.

In all modes, the START POSN and END POSN (start and end position) values determine the number of revolutions performed over the duration of the file. If STARTPOSN = ENDPOSN, the pan is a fixed position.

In Mode 1, the output is either a standard (decoded) quad soundfile, or Horizontal B-Format (standard WAVE file).The latter can be converted to the new WAVE-EX format by COPYSFX. Output in Modes 2/3 is in .amb format: there is no decoded output option.

The input is natively mono; however, Soundshaper can handle Stereo or m/c input, the outputs being mixed after processing.

MODES 
All modes: Pan in a circle between start and end position, or fixed pan if start=end
 1 1st-order B-Format (3 or 4 channel: see OUTCHANS)
 2 2nd-order B-Format Horizontal (5-channel) output -- no height
 3 2nd-order B-Format Periphonic (9-channel) output with height chans Z R S T
    NB DEGREES must be selected to create this Mode; otherwise it is in effect mode 2.
 
STARTPOSN: rotation start position 
  Range: 0-1: >0.0 and < 1.0. 0.0 and 1.0 = Centre Front
ENDPOSN determines the nature of the rotation: >0 clockwise; <0 anticlockwise; 
Units give number of revolutions; integer positions define Centre Front, fractions give final radial position.   Set endpos = startpos for a fixed pan.
  Range (Soundshaper): -100 to +100; may be exceeded: tested up to 1000 which gives a modulation effect.
(OUTCHANS - Mode 1): the number output channels. If not set: create a standard 4-channel .wav soundfile; if set: write a B-Format ambisonic file. 
  Range: 3 or 4 only; default: 4-channel .wav
(GAIN - Modes 2/3): Scale the infile amplitude 
  Range: > 0 to 10.0 (may be exceeded)
DEGREES (Mode 3): fixed height. This should be selected to create a 9-channel periphonic file with height channels; otherwise the program runs Mode 2: a horizontal-only output comprising five channels. 
  Range: -90=nadir to +90=zenith; if 0, height channels (Z,R,S,T) will be empty.

OPTIONS
 Mode 1:
Ambisonic B-Format: write output as horizontal Ambisonic B-format (the standard format)
WAVE_EX: write B-Format (WAVE_EX) format file (requires .amb or .wav file extn.) Default: standard m/c soundfile.
NB: Both options are needed to create an .AMB format file. Such a file can then be decoded, using AMBIDCODE, to a choice of speaker layouts. 
 Modes 2/3: 
WAV format: write standard (plain) WAVE format multi-channel soundfile (.wav). Default is B-Format.

NOTES
Support for the .amb extension is not yet built into Soundshaper (i.e. you can output an ambisonic file, but it will not carry the .amb extension). 

If you do not want ambisonic output, just run Mode 1 without checking Option 1 (Ambisonic B-format) and you can still get a rotation or a fixed pan position.   

[313]  Ambidecode
AMBIDECODE (CDP: fmdcode)
 
AMBIDECODE (CDP: fmdcode) decodes a 1st or 2nd order B-Format soundfile to a choice of speaker layouts.    
An ambisonic input file may be created using AMBIPAN. 

The output options are:
   generic WAVE_EX format (default)
   plain WAVE outfile format (chack the WAV Option) 
   write standard WAVE_EX speaker positions to the header (check the WAVE_EX option).
    This applies only to compatible speaker positions, marked with an asterisk(*). See LAYOUT

LAYOUT determines the speaker layout. The numbering system is different from many of the CDP m-c programs: see NOTE below

PARAMETER
LAYOUT speaker layout, using the following codes (* denotes WAVE-EX compatible):
1 :  * mono (= W signal only)
2 :  * stereo (quasi mid/side, = W +- Y)
3 :  square
4 :  * quad FL,FR,RL,RR order
5 :  pentagon
6 :  * 5.0 surround (WAVE_EX order)
7 :  * 5.1 surround (WAVE_EX order, silent LFE)
8 :  hexagon
9 :  octagon 1 (front pair, 45deg)
10 : octagon 2 (front centre speaker)
11 : cube (as 3, low-high interleaved. Csound-compatible.)
12 : * cube (as 4, low quad followed by high quad).
 
NOTES
AMBIDECODE and AMBIPAN are from the Multi-channel toolkit, written by Richard Dobson. The multi-channel functions that are not in the toolkit were written by Trevor Wishart. The authors use opposite different channel numbering systems: in the toolkit, the outfile channels (speaker feeds) are ordered anti-clockwise relative to centre front; the Wishart functions usually assume a clockwise ring numbering, also starting from centre front. MchOrder can be used to re-orient the channel layout.

For diagrams of the above speaker positions, see MCToolkit.pdf, supplied with CDP DOCS, or visit:
people.bath.ac.uk/masrwd/mctools.html  

[316] MchOrder
MCHORDER (CDP: chorder): re-order the channels in a multi-channel soundfile (WAVE-EX out)

MchOrder re-configures the orders of channels in a multi-channel file, using a simple aplphabetical code for the channels: of a=1, b=2 etc. with 0 = silent channel. For example: dcab (no gaps allowed) would re-order a 4-channel file in the channel order 4-3-1-2.

PARAMETER
NEW ORDER: text string of letters (or 0=silent) representing channels 
  Range: a-z (= chans 1-26) 


[320] Convolve
CONVOLVE (CDP: fastconv): FFT-based convolver

CONVOLVE performs FFT-based convolution. With a suitable impulse file (see NOTES), it can create a natural reverberation, or it can be used experimentally with any other soundfile. A file can also be convolved with itself. The sample rates of the two soundfiles must be the same.

The second input file can be a soundfile or a textfile (with extension .txt) containing an impulse response, e.g., reverb or FIR filter. (As a textfile, other than .brk, cannot appear on the Patchgrid, you would need to select this from its folder, using the normal file-selector.)

Supported channel combinations are:
   1. mono infile, N-channel impulse file (output also N-Channel)
   2. channels are the same
   3. N-channel infile, mono impulse file 
If the impulse file is mono, data is duplicated for all input channels.
The AMB (ambisonics) file format is also supported.

PARAMETERS
(SCALE): Scale output amplitude by this amount (optional) 
  Range: 0.001 to 10 (<1 reduces, >1 increase amplitude.)    
(DRY): Optionally set a dry/wet mix, e.g., for reverb. 
  Range: 0.0 to 1.0 (Default = 0.0; typical 0.5): closer to 0 for dry, closer to 1 for wet; T-V.

NOTES
The primary application of convolution is reverberation. An impulse soundfile (like that produced by TAPDELAY) is needed: each sample of the source is played at each impulse time and level. To reproduce a particular reverberation, the impulse sound (such as a gunshot) should have been recorded in the desired acoustic space. Many impulse files (sound and ipulse-response) are available free on the Internet and more are available to purchase.

It is usual to supply a non-zero value for dry, e.g., 0.5. However, some recorded or synthetic impulse responses may already include a 'direct' component  meaning the sound of the source file without any additional reverberation. In such cases, a dry value may not be needed.

The FFT of the whole impulse response is stored in main memory, so very large files may raise memory demands to critical levels.

[310] [322] Interlx
INTERLEAVE / INTERLX (CDP: interlx): interleave channels

INTERLEAVE uses CDP interlx to interleave separate channels into a stereo or multi-channel file. The channel count must match: mono + mono to stereo; stereo + stereo to 4 channel. Multi-chennel inputs (e.g. 4 channel) are not accepted, but you can interleave a number of stereo files. This process is applied 'directly', as there are no parameters.

INTERLX with WAVE-EX output has one parameter: FORMATOUT, which determines the speaker positions of the channels. 0 is a standard m-c .wav file (not WAVE-EX); others are WAVE-EX

PARAMETER
FORMATOUT: The output speaker format code, as follows:
 0: Standard .WAV 
 1: Generic(no speaker positions)
 2: 2=M/S/Q;
 3: 3=LCRS
 4: 5.1
 5:  5=.amb
 6: 6=5.0
 7: 7=7.1
 8: 8=Cube
Diagrams for each of these are available in the CDP Help notes for INTERLX

[323] StoN
STON (CDP: interlx): convert a stereo file to multi-channel

StoN uses CDP's INTERLX interleaving function to convert a stereo file to a multi-channel one, duplicating chans 1-2 as 3-4, 5-6, 7-8, etc.

PARAMETERS
OUTCHANS: number of output channels
  Range: 2-16; must be a multiple of 2 (2 itself is pointless)


//-------- PITCHFILE FUNCTIONS --------- 

[400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411]  

COMBINE Pitch and Transposition files (CDP: repitch combine / repitch combineB)

These functions combine in various ways pitch files (.frq / .pch *), extracted from spectral analysis files, and transposition files (.trn), created from two pitch files.
The two types of pitch and transposition file -- binary and breakpoint -- are reflected in CDP's names and in Soundshaper's menus: COMBINE for binary and COMBINEB for breakpoint. Pretty well every combination of these files is catered for:

COMBINE:  Frq+Frq->Trn, Frq+Pch->Trn, Frq+Trn->Frq, Frq+TrB->Frq, Trn+Trn->Trn, Trn+TrB->Trn 
COMBINEB: Frq+Frq->TrB, Frq+Pch->TrB, Frq+Trn->Pch, Frq+TrB->Pch, Trn+Trn->TrB, Trn+TrB->TrB 

where Frq is a binary pitch file and Pch is its breakpt. equivalent; Trn is a binary transposition file and TrB is its breakpt. equivalent.

PARAMETERS: none

NOTES
* Soundshaper has introduced the file suffix .pch for breakpoint pitch files, but .brk is still a recognized suffix. Furthermore, the general shape of a breakpoint file, e.g. as extracted from an amplitude envelope, can be applied to pitch as much as other processes.  


[415]  Transee
TRANSEE (CDP: pitchinfo see): view transposition data as pseudo-soundfile

TRANSEE allows you to see a binary transposition file (.trn) as a pseudo-soundfile. Soundshaper saves this to a temp. file ~[filename]vu.wav and diaplys it in VIEWSF.
Do not attempt to play this file!  Uncheck the SPARE FILE checkbox after use.

In many ways it is an un-necessary function, as the binary file can be converted to breakpoint and viewed in Graph-Edit (and you can do something with it, too).

PARAMETERS: none

[416]  PtoBrk
PtoBrk (CDP: ptobrk withzeros)

This function was introduced for the pitch-synchronous suite of processes (CDP: PSOW) to create the correct format for the pitch trace used there. (In Soundshaper's implementation of PSOW, it is built in.) 

In fact, it produces a detailed pitch-breakpoint file which may have uses beyond PSOW.

PARAMETERS: none (CDP's MIN-PITCH-DUR parameter is set to the recommended value of 20ms) 

NOTE
See also PchToBrk and BrkToPch

[420]  PchApprox
PCHAPPROX (CDP: repitch approx): make an approximate copy of a pitch file

PchApprox makes a randomly varied copy of a pitch file, within a specified range of up to 96 semitones, and with timing variations up to the length of the file. Several of these resynthesized (via MakeSpec) and mixed should give a natural chorus effect. (Output is a pitch .frq or transposition .trn file.)

MODES
1 Pitch out: output a binary pitch file
2 Transpos'n out: output a binary transposition file

PARAMETERS
(PITCH RANGE): Amount of variation from original pitch (T-V)
  Range: 0 to 96.0 semitones
(TIME RANGE): Amount of variation from original time, applied to turning points in pch contour (T-V)
  Range: 1 window to file-length msecs
(SCAN RANGE): range over which pitch contour is scanned (T-V)
  Range: >8 windows to file-length msecs

NOTES
You can re-synthesize sound using the MAKE program, which combines the approximated pitch data file with a formant file, normally extracted from the same source. Of course you could take the formant data from a different sound. 

Soundshaper has a version of this process in the Spectral Pitch/Freq menu, which extracts pitch automatically using default values, approximates it and resynthesizes it with the original formants, also extracted using defaults.


[4201]  PchApprox
PCHAPPROX (CDP: repitch approx): make an approximate copy of a pitch file

PchApprox makes a randomly varied copy of a pitch file, within a specified range of up to 96 semitones, and with timing variations up to the length of the file. Several of these resynthesized (via MakeSpec) and mixed should give a natural chorus effect.

This version is a composite, extracting pitch automatically using default values, approximating it and resynthesizing it with the original formants, also extracted using defaults. The output is a frequency analysis file (.ana), which will automtacially be converted to a soundfile if Option 5 (Auto-convert is set).


PARAMETERS
(PITCH RANGE): Amount of variation from original pitch (T-V)
  Range: 0 to 96.0 semitones
(TIME RANGE): Amount of variation from original time, applied to turning points in pch contour (T-V)
  Range: 1 window to file-length msecs
(SCAN RANGE): range over which pitch contour is scanned (T-V)
  Range: >8 windows to file-length msecs

NOTE
The original version of this process is available in the Pitch Data Process menu. In that version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.


[421]  PchCut
PCHCUT (CDP: repitch cut): cut a binary pitch file (OUTFILE: .frq)

PchCut extracts a segment of a pitch file (.frq). The 1-window upper or lower limit is calculated by Soundshaper from the binary pitch source. 

MODES
1 Start-time to end (of file)
2 Start to (given) end-time 
2 Between times: START TIME to END TIME

PARAMETERS
START TIME (Modes 1,3): time to begin cut
  Range: 0 to filelength less 1 window (secs)
END TIME (Modes 2,3): time to end cut
  Range: 1 window to filelength (secs)

[422]  PchExagg
PCHEXAGG (CDP: repitch exag)

PchExagg exaggerates the pitch contour by measuring the interval from a given pitch (time-variable) to the actual pitch and then either applying a stretch value (CONTOUR) or a multiplier (PCH RANGE) to the interval (thereby stretching or shrinking it), or both. Output is a .frq or .trn file. 

MODES
1 Range - pitch out: apply pitch multiplier; Outfile: Pitch data (.frq)
2 Range - transpos'n out: apply pitch multiplier; Outfile: Transposition (.trn)
- - - - - - - - - - 
3 Countour - pitch out: apply stretch value; Outfile: Pitch data (.frq)
4 Contour - transpos'n out: apply stretch value; Outfile: Transposition (.trn)
- - - - - - - - - -
5 Both - pitch out: apply both pitch multiplier and stretch value; Outfile: Pitch data (.frq)
6 Both - transpos'n out: apply both pitch multiplier and stretch value; Outfile: Transposition (.trn)

PARAMETERS
ABOUT: Pitch around which intervals are stretched  (T-V)
  Range: 0-127.0 (MIDI pitch, where 60=Mid C; fractions allowed)
PCHRANGE (Modes 1,2,5,6): multiplier stretching or shrinking the pitch range in semitones (T-V)
  Range: 0 to 1 to 127 <1 shrinks, >1 stretches 1= no change
CONTOUR (Modes 3-6): exaggerate pitch contour (T-V)
  Range: 0-1

NOTES
You can re-synthesize sound using the MAKE program, which combines the exaggerated pitch data file with a formant file, normally extracted from the same source. Of course you could take the formant data from a different sound. 

Soundshaper has a version of this process in the Spectral Pitch/Freq menu, which extracts pitch automatically using default values, exaggerates it and resynthesizes it with the original formants, also extracted using defaults.


[4221]  PchExagg
PCHEXAGG (CDP: repitch exag)

PchExagg exaggerates the pitch contour by measuring the interval from a given pitch (time-variable) to the actual pitch and then either applying a stretch value (CONTOUR) or a multiplier (PCH RANGE) to the interval (thereby stretching or shrinking it), or both.

This version is a composite, extracting pitch automatically using default values, exaggerating it and resynthesizing it with the original formants, also extracted using defaults. The output is a frequency analysis file (.ana), which will automtacially be converted to a soundfile if Option 5 (Auto-convert is set).

MODES
1. Range - pitch out: apply pitch multiplier)
2. Countour - pitch out: apply stretch value
3. Range and Contour  - apply both pitch multiplier and stretch value

PARAMETERS
ABOUT: Pitch around which intervals are stretched  (T-V)
  Range: 0-127.0 (MIDI pitch, where 60=Mid C; fractions allowed)
PCHRANGE (Modes 1,3): multiplier stretching or shrinking the pitch range in semitones (T-V)
  Range: 0 to 1 to 127 <1 shrinks, >1 stretches 1= no change
CONTOUR (Modes 2,3): exaggerate pitch contour (T-V)

NOTE
The original version of this process is available in the Pitch Data Process menu. In that version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.

PCHEXAGG is also grouped with a newer alternative CDP function (from Rel.8 specfnu) EXAGGPCH which performs much the same function.

[423]  PchFix
PCHFIX (CDP: repitch fix)

PchFix is a collection of pitch file utilities, all of which are duplicate elsewhere. There are no modes; the operation is selected by choosing the appropriate parameters. At least one must be set (or the Interpolate Option). Output is a binary pitch file (.frq). 

OPERATIONS
 Cut  remove pitch between timepoints: select START and/or END (c.f. PCHCUT)
 Filter: select LOW FREQ and /or HI FREQ  
 Smooth  onset errors and glitches: select SMOOTH (c.f. PCHSMOOTH)
 Force pitch  to be some value at start/end: select START FREQ and/or END FREQ  
 Interpolate  through unpitched windows to produce continuous pitch: select OPTION "Pitch all data". May also be set for other operations. (c.f. PchInterp)

PARAMETERS
(START) Cut: start time of cut
  Range: 0 - file-length (secs) and < END (Default: 0.0) 
(END) Cut: end time of cut
  Range: 0 - file-length (secs) and > START (Default: end of file)
(LOW FREQ) Filter: remove pitch below frequency (High-pass)
  Range: 5-22050 Hz
(HI FREQ) Filter: remove pitch above frequency (Low pass). For band-pass, set Low and Hi Freq. 
  Range:  5-22050 Hz
(SMOOTH) Smooth: smooth onset errors and glitches in pitch data "count" times
  Range: 1-100 (counts)
(START FREQ) Force pitch: force start frequency to be this
  Range: 10-22050 Hz
(END FREQ) Force pitch: force end frequency to be this
  Range: 10-22050 Hz

OPTIONS
 Remove glitches (SMOOTH only): remove 2-window glitches; default: 1 window
 Pitch all data: interpolate through unpitched windows to produce pitched data throughout (normally set)

[424]  PchInvert
PchInvert (CDP: repitch invert)

PchInvert inverts the pitch contour around a given pitch (ABOUT). The choice is between mirror inversion, or using a mapping text file (in semitones) of intervals and their inversions. You can map intervals however you wish, including fractional (microtonal) MIDI values. Optionally restrict the inversion pitch range with LOWPCH and HIGHPCH.  
Output is a binary pitch (.frq) or transposition (.trn) file.

MODES
1 Pitch out: output a binary pitch file
2 Transpos'n out: output a binary transposition file

PARAMETERS
MAP: 0 if no mapping is required; OR a text file of paired values showing how intervals are to be mapped onto their inversions. 
  Datafile of: 
	Interval 1  Inversion 1 
	Interval 2  Inversion 2
	etc. 
    Range: -96 to 96 semitones (fractions allowed)
ABOUT: pitch around which the pitch line is to be inverted or mapped (T-V)
  Range: 0-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 60
(LOW PITCH): minimum acceptable pitch (MIDI 1-127)
  Range: 0-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 0
(HIGH PITCH): maximum acceptable pitch (MIDI 1-127)
  Range: 0-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 127

NOTES
You can re-synthesize sound using the MAKE program, which combines the quantized pitch data file with a formant file, normally extracted from the same source. Of course you could take the formant data from a different sound. 

Soundshaper has a version of this process in the Spectral Pitch/Freq menu, which extracts pitch automatically using default values, inverts it and resynthesizes it with the original formants, also extracted using defaults. 

[4241]  PchInvert
PchInvert (CDP: repitch invert)

PchInvert inverts the pitch contour around a given pitch (ABOUT). The choice is between mirror inversion, or using a mapping text file (in semitones) of intervals and their inversions. You can map intervals however you wish, including fractional (microtonal) MIDI values. Optionally restrict the inversion pitch range with LOWPCH and HIGHPCH.  

This version is a composite, extracting pitch automatically using default values, inverting it and resynthesizing it with the original formants, also extracted using defaults. The output is a frequency analysis file (.ana), which will automtacially be converted to a soundfile if Option 5 (Auto-convert is set).

PARAMETERS
MAP: 0 if no mapping is required; OR a text file of paired values showing how intervals are to be mapped onto their inversions. 
  Datafile of: 
	Interval 1  Inversion 1 
	Interval 2  Inversion 2
	etc. 
    Range: -96 to 96 semitones (fractions allowed)
ABOUT: pitch around which the pitch line is to be inverted or mapped (T-V)
  Range: 0-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 60
(LOW PITCH): minimum acceptable pitch (MIDI 1-127)
  Range: 0-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 0
(HIGH PITCH): maximum acceptable pitch (MIDI 1-127)
  Range: 0-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 127

NOTE
The original version of this process is available in the Pitch Data Process menu. In that version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.

PCHINVERT is also grouped with a newer alternative CDP function (from Rel.8 specfnu) INVERTPCH which performs much the same function.


[425]  PchQuant
PchQuant (CDP: repitch quantise)

PchQuant quantizes pitches in a pitch file (.frq): you supply a text list of (possibly fractional) MIDI quantization values and the actual pitches are "snapped" (quantized) to the nearest quantized value. No time-points are needed. This process simulates some of the behaviour of "autotuning" programs, though not in real-time. As singing in particular may not be exactly at A=440 tuning, it's worth analysing the extracted frequency values first to get a typical value for each note. Quantizing one octave with whole numbers and selecting the Option should enable pitches to be quantised to equal-tempered frequencies.

Output is a binary pitch (.frq) or transposition (.trn) file.

MODES
1 Pitch out: output a binary pitch file
2 Transpos'n out: output a binary transposition file

PARAMETERS
MIDI: text datafile -- list of MIDI pitches, one per line, providing a template of values onto which to "snap" existing pitches
  Range: 0-127 (MIDI pitch, where 60 = Mid C); fractions allowed
  Example: 
    60
    61
    62 etc.

OPTION
 Octave-transpose MIDI: duplicate quantisation set (MIDI values) in all octaves

NOTES
You can re-synthesize sound using the MAKE program, which combines the quantized pitch data file with a formant file, normally extracted from the same source. Of course you could take the formant data from a different sound. 

Soundshaper has a version of this process in the Spectral Pitch/Freq menu, which extracts pitch automatically using default values, quantizes it and resynthesizes it with the original formants, also extracted using defaults. 

[4251]  PchQuant
PCHQUANT (CDP: repitch quantise)

PchQuant quantizes pitches in a pitch file. The process needs a text list of (possibly fractional) MIDI quantization values; the actual pitches are then "snapped" (quantized) to the nearest listed pitch value. No time-points are needed. For example, the pitch list may be a chromatic scale in MIDI values. 

This version is a composite, extracting pitch automatically using default values, quantizing it and resynthesizing it with the original formants, also extracted using defaults. The output is a frequency analysis file (.ana), which will automtacially be converted to a soundfile if Option 5 (Auto-convert is set).

This process simulates some of the behaviour of "autotuning" programs, though not in real-time. As singing in particular may not be exactly at A=440 tuning, it's worth analysing the extracted frequency values first to get a typical value for each note. Quantizing one octave with whole numbers and selecting the Option should enable pitches to be quantised to equal-tempered frequencies.

PARAMETER
MIDI: text datafile -- list of MIDI pitches, one per line, providing a template of values onto which to "snap" existing pitches
  Range: 0-127 (MIDI pitch, where 60 = Mid C); fractions allowed
  Example: 
    60
    61
    62 etc.

OPTION
 Octave-transpose MIDI: duplicate quantisation set (MIDI values) in all octaves

NOTE
The original version of this process is available in the Pitch Data Process menu. In that version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.

PCHQUANT is also grouped with a newer alternative CDP function (from Rel.8 specfnu) QUANTPCH which performs much the same function.


[426]  PchRand
PCHRAND (CDP: repitch randomise)

PchRand varies the pitch line randomly, with control over the pitch and time ranges and the slew: whether the upward range is more than the downwards, or vice-versa.  
Output is a binary pitch (.frq) or transposition (.trn) file.

MODES
1 Pitch out: output a binary pitch file
2 Transpos'n out: output a binary transposition file

PARAMETERS
MAX INTERVAL: maximum random variation of pitch (T-V)
  Range: 0-96.0 semitones
TIME STEP: maximum random variation of time between pitch fluctuations (T-V)
  Range: 1 window to file-length msecs
(SLEW): upward versus downward variation
  Range: -50 to +50; default 0
    e.g. 2: upward variation range twice that of downward.
    e.g -3: downward variation range 3 times that of upward.

NOTES
You can re-synthesize sound using the MAKE program, which combines the randomized pitch data file with a formant file, normally extracted from the same source. Of course you could take the formant data from a different sound. 

Soundshaper has a version of this process in the Spectral Pitch/Freq menu, which extracts pitch automatically using default values, randomizes it and resynthesizes it with the original formants, also extracted using defaults. 


[4261]  PchRand
PCHRAND (CDP: repitch randomise)

PchRand varies the pitch line randomly, with control over the pitch and time ranges and the slew: whether the upward range is more than the downwards, or vice-versa.  
Output is a binary pitch (.frq) or transposition (.trn) file.

This version is a composite, extracting pitch automatically using default values, randomizing it and resynthesizing it with the original formants, also extracted using defaults. The output is a frequency analysis file (.ana), which will automtacially be converted to a soundfile if Option 5 (Auto-convert is set).

PARAMETERS
MAX INTERVAL: maximum random variation of pitch (T-V)
  Range: 0-96.0 semitones
TIME STEP: maximum random variation of time between pitch fluctuations (T-V)
  Range: 1 window to file-length msecs
(SLEW): upward versus downward variation
  Range: -50 to +50; default 0
    e.g. 2: upward variation range twice that of downward.
    e.g -3: downward variation range 3 times that of upward.

NOTE
The original version of this process is available in the Pitch Data Process menu. In that version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.

PCHRAND is also grouped with a newer alternative CDP function (from Rel.8 specfnu) RANDPCH which performs much the same function.


[427]  PchShift
PCHSHIFT (CDP: repitch pchshift)

PchShift is a simple constant-interval transposition of data in a pitch file (.frq). Produces .frq file.  For normal transposition, use Transpose (Menu: Spectral > Freq/Pitch). For alternative manipulation of pitch, use Graph-Edit with a pitch breakpoint file.

NOTE: pitch change will only succeed to the extent that the frequencies of the altered pitches are also present (i.e. strong or weak) in the formant file. This could be achieved, if necessary, by mixing a number of transpositions (before extracting the formant file).

PARAMETERS
TRANSPOSE: transposition in semitones (possibly fractional)
  Range: -96.0 to 96.0 (semitones)

NOTES
It is normal to use the program MAKE to re-sysnthesize sound. This requires an extracted formant file (.for), which may or may not have come from the source sound.

A version (also called PCHSHIFT), with pitch and formant extraction built in (using default values) is also available in the SPECTRAL | PITCH/FREQ menu ("Transpose pitch preserving time and formants" Shortcut: Shift+Alt+#).  This present version allows for a choice of values when extracting pitch and formants.

[4271]  PchShift
PCHSHIFT (CDP: repitch pchshift and repitch octmove)

PchShift (Mode 1) is a simple constant-interval transposition, preserving time and formants. In this composite version, a pitch file (.frq) is extracted automatically using default values and is combined with an extracted formant file (.for) from the same input sound to re-synthesise the transposed sound. PchShift has been merged here with OCTMOVE (Modes 2-4), also preented as a composite. OCTMOVE natively requires an extracted pitch file (.frq), here extracted automatically. 

MODES
1. Transpose by semitones (orig. PchShift)
2. Transpose up by ratio  (orig. Octmove)
3. Transpose down by ratio (orig. Octmove)
4. Transpose down with bass boost  (orig. Octmove)

PARAMETERS
TRANSPOSE: transposition in semitones (possibly fractional)
  Range: -96.0 to 96.0 (semitones)
RATIO: transpose up (mode2) or down (modes 3/4) by ratio: 2 = 8ve, 3 = 12th etc.
  Range: 2 to 256
BASS BOOST (Mode 4): boost or reduce output level
  Range: 0-50 (<1 reduces; 1=no change; >1 boost)


NOTES
PCHSHIFT (Mode 1) is also available in the Pitch Data menu. This allows pitch to be extracted with a choice of values, and a different formant file (.for) to be applied when re-synthesizing using the MAKE function.


[428]  PchSmooth
PCHSMOOTH (CDP: repitch smooth)

PchSmooth averages the pitch across the specified time-window and them interpolates from there to the next averaged time-frame. The mean pitch around which it is averaged is time-variable and could come from quantized pitch data (converted to .brk). 
Output is a binary pitch (.frq) or transposition (.trn) file.

MODES
1 Pitch out: output a binary pitch file
2 Transpos'n out: output a binary transposition file

PARAMETERS
TIMEFRAME: time over which to interpolate pitch values (T-V)
  Range: 1 window to file-length (msecs)
(MEAN PITCH): pitch from which peaks are measured - smoothing interpolates between peaks (T-V)
  Range: 0-127 (MIDI pitch, where 60 = Mid C); fractions allowed

OPTION
 Hold last pitch at end (Default: interpolate to last actual imput value)

NOTES
You can re-synthesize sound using the MAKE program, which combines the smoothed pitch data file with a formant file, normally extracted from the same source. Of course you could take the formant data from a different sound. 

Soundshaper has a version of this process in the Spectral Pitch/Freq menu, which extracts pitch automatically using default values, smooths it and resynthesizes it with the original formants, also extracted using defaults. 


[4281]  PchSmooth
PCHSMOOTH (CDP: repitch smooth)

PchSmooth averages the pitch across the specified time-window and them interpolates from there to the next averaged time-frame. The mean pitch around which it is averaged is time-variable and could come from quantized pitch data (converted to .brk). 
Output is a binary pitch (.frq) or transposition (.trn) file.

This version is a composite, extracting pitch automatically using default values, smoothing it and resynthesizing it with the original formants, also extracted using defaults. The output is a frequency analysis file (.ana), which will automtacially be converted to a soundfile if Option 5 (Auto-convert is set).


PARAMETERS
TIMEFRAME: time over which to interpolate pitch values (T-V)
  Range: 1 window to file-length (msecs)
(MEAN PITCH): pitch from which peaks are measured - smoothing interpolates between peaks (T-V)
  Range: 0-127 (MIDI pitch, where 60 = Mid C); fractions allowed

OPTION
 Hold last pitch at end (Default: interpolate to last actual imput value)

NOTE
The original version of this process is available in the Pitch Data Process menu. In that version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.


[429]  PchVib
PCHVIB (CDP: repitch vibrato)

PchVib adds vibrato to a pitch file: frequency and range (depth) are both time-variable. Output is a binary pitch (.frq) or transposition (.trn) file.

MODES
1 Pitch out: output a binary pitch file
2 Transpos'n out: output a binary transposition file

PARAMETERS
VIB FREQ: rate of vibrato (T-V)
  Range: 0- analysis sample rate (Hz)
VIB RANGE: depth of deviation from central pitch (T-V)
  Range: 0 to 96.0 (semitones)

NOTES
You can re-synthesize sound using the MAKE program, which combines the processed pitch data file with a formant file, normally extracted from the same source. Of course you could take the formant data from a different sound. 

Soundshaper has a version of this process in the Spectral Pitch/Freq menu, which extracts pitch automatically using default values, processes it and resynthesizes it with the original formants, also extracted using defaults. 


[4291]  PchVib
PCHVIB (CDP: repitch vibrato)

PchVib adds vibrato to a pitch file: frequency and range (depth) are both time-variable.

This version is a composite, extracting pitch automatically using default values, processing it and resynthesizing it with the original formants, also extracted using defaults. The output is a frequency analysis file (.ana), which will automtacially be converted to a soundfile if Option 5 (Auto-convert is set).

PARAMETERS
VIB FREQ: rate of vibrato (T-V)
  Range: 0- analysis sample rate (Hz)
VIB RANGE: depth of deviation from central pitch (T-V)
  Range: 0 to 96.0 (semitones)

NOTE
The original version of this process is available in the Pitch Data Process menu. In that version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.


[430]  PchVowels
PCHVOWELS (CDP: repitch vowels): create spectrum of vowels from pitch file

PchVowels is similar to VOWELS (Menu: Spectral | Filter | Vowels) which imposes vowel formants on a sound. PchVowels imposes vowels on a pitch file (.frq), creating artificial speech-like sounds (with the emphasis perhaps on "artificial" rather than "speech"). The vowels are specified by a custom vocabulary of abbreviations such as "a", "ee", "oa" etc. (For details, see CDP documentation.) 

Vowels are recognizable because of formants - specific frequency bands; these have a centre frequency and a bandwidth. The parameters HALFWIDTH, STEEPNESS and PKRANGE are all related to formant peaks.

Note that if the process doesn't find any valid pitches, it will generate an error message. The spectral version is less fussy and can impose vowels on a bell sounds, for instance.

PARAMETERS
VOWELS: datafile of times and vowels
  Example:
   0	    ai
   1.6747   ee
   3.3494   o
   5.024    oa
HALFWIDTH - of formant peaks in Hz, as a fraction of the formant centre frequency (T-V)
  Range: 0.01 to 10 Hz; default: 0.25
STEEPNESS: factor determining the resonance of formant peaks (c.f. 'Q' in filtering) (T-V)
  Range: 0.1 to 10; default: 0.3
PKRANGE: ratio of (maximum) peak heght to (maximum) total range of peak height (T-V)
  Range: 0-1; default: 0.95
FUND WEIGHT: amplitude weighting of the fundamental (T-V)
  Range: 0-1; default 1
FREQ. SCATTER: randomization of frequencies of harmonics from their true value (T-V)
  Range: 0-1; default 0 

NOTES
You can re-synthesize sound using the MAKE program, which combines the processed pitch data file with a formant file, normally extracted from the same source. Of course you could take the formant data from a different sound. 



[431]  PchGen
PCHGEN (CDP: repitch generate): synthesize pitch file from time-MIDI data

PchGen (CDP: repitch generate) generates a pitch file (.frq) from a time - MIDI-pitch data file. Though not a true breakpoint file, this can be edited in Graph-Edit. (CDP alternatively allows pitch to be specified by letter name (e.g. C, Eb, G#) followed by octave number (-5 to +5) where C0 is middle C (e.g. Db1). This format cannot be handled by Graph-Edit.) The function is potentially extremely useful for the purposes of imposing pitch, when combined with a suitable formant file, especially on a sound rich in partials such as a gong or cymbal.

PARAMETERS
TIMEMIDI: text datafile of time (secs) and MIDI pitch values
  Range for MIDI: 0-127 (where 60=MidC; fractions allowed)
  Example:
  0.0    69.16
  0.853  69.16
  0.854  57.16
  3.947  57.16
  3.948  45.16
  5.973  45.16
  5.974  76.16
  7.960  76.20
  7.961  81.16
  9.107  81.28
  9.108  69.16
  10.000 69.16	

SRATE: sample rate of soundfile that might be generated later 
  Range: 16-96 kHz
  Presumed values:  96000, 48000, 24000, 44100, 22050, 32000, or 16000 Hz
  NB: the parameter fader permits other values which may not succeed.


[432]  PchSynth
PCHSYNTH (CDP: repitch synth)

PchSynth synthesises a pitch-changing but harmonically static spectrum (.ana) from a pitchfile, according to a given set of weighted harmonics. You could vocode this with another sound to give it some dynamic life.

PARAMETER
HMCS: text list of the amplitude of each harmonic in sequence, from 1 upwards
  Range for each amplitude: 0-1; a value of 0 skips that harmonic.
  Example:
  1.0
  0.8
  0.7
  0.6
  0.5
  0.4
  0.3
  0.2
  0.1

[433]  PchInsil
PCHINSIL (CDP: repitch insertsil): insert silence into a pitch file

PchInsil inserts silence into a binary pitch file (.frq). The function uses a Timesfile of From-To pairs, which can be exported from Markers.

See also: PchToSil, which converts pitched sections into silence.

MODES
1 Data as times in secs 
2 Data as grouped samples

PARAMETER
TIMESFILE: Text list of FROM - TO pairs of times
  Range: 0-file-length secs 
  Example:
; from   to
  0      0.8
  2.242  3.237


[434]  PchUnpitch
PCHUNPITCH (CDP: repitch insertzeros)

PchUnpitch inserts unpitched areas (zeros) into a pitch file (.frq). The function uses a Timesfile of From-To pairs, which can be exported from Markers.

MODES
1 Data as times in secs 
2 Data as grouped samples

PARAMETER
TIMESFILE: Text list of FROM - TO pairs of times
  Range: 0-file-length secs 
  Example:
; from   to
  0      0.8
  2.242  3.237

[435]  NoisetoSil
NOISETOSIL (CDP: repitch noisetosil)

NoisetoSil converts unpitched areas of a pitch file (noise) to silence. The process succeeds only if there are unpitched areas in the file. There are no parameters.

PARAMETERS: none

[436]  PchtoSil
PCHTOSIL (CDP: repitch pitchtosil 

PCHTOSIL converts pitched areas of a pitch file (noise) to silence. The process succeeds only if there are unpitched areas in the file. There are no parameters.

PARAMETERS: none

[437]  PchtoBrk
PCHTOBRK (CDP: repitch pchtotext)

PchtoBrk converts a pitch file (.frq) into a pitch breakpoint file. PchtoBrk produces an outline of the pitch, which is quite sufficient for many purposes.
The breakpoint output may be viewed in Graph-Edit (F6) and edited there as needed; or you might extract relevant time-points for use with another function, or impose it on a soundfile, e.g. to tranpose it.

An alternative function PtoBrk, which was introduced for use with the PSOW suite (see also PSOW menu), gives a much more detailed pitch trace.

PARAMETERS: none

SEE ALSO: BrktoPch, which converts a pitch breakpoint file (.pch/.brk) to a pitch file (.frq).

[438]  [4381] PchInterp
PCHINTERP/2 (CDP: repitch interp)

PchInterp interpolates from one pitched area to the next, replacing noise or silence. There are no parameters. 
PCHINTERP (CDP Mode 1) glides from the previous valid pitch to the next valid pitch. 
PCHINTERP2 (CDP Mode 2) sustains the previous valid pitch until the next valid pitch appears. 

PARAMETERS: none

[439]  SetGetPch
SETGETPCH (CDP: no equivalent): set default values for GETPITCH

SetGetPitch sets default values to be used when Soundshaper automatically extracts pitch. The parameters are the same as for GetPitch/GetPitchBrk.

GetPitch extracts pitch from a frequency analysis file (.ana)* to a binary file (.frq). There are several optional parameters, but the default values work well. The HARMONICS parameter, which sets how many harmonics must be present to establish pitch (default 5), might need to be lowered in some cases.   (*In Soundshaper, the input file can be a soundfile; the program makes the necessary file conversions.)

GetPitchBrk extracts pitch to a breakpoint text data file (.pch or .brk). An extra parameter ERROR sets a range of acceptable error in data reduction; the default value is 1/4 semitone.  (The suffix .pch is gradually being added to Soundshaper, but may not be fully supported yet.) The breakpoint file can be fully edited in Graph-Edit to change pitch or timings. For data reduction, see also CDP's BrkEdit.

PARAMETERS
(TUN RANGE): tuning range within which harmonics are regarded as being in tune
  Range: 0-6; default 1 (semitones)
(TIME RANGE): Minimum no. of adjacent time-windows that must be pitched in order to extract a pitch value
  Range: 0-100; default 2 (windows)
(SIG NOISE): signal to noise threshold; lower levels are treated as unpitched noise, not signal.
  The scale used is in dB below the maximum level.
  Range: 0-100; default 80 (deciBels)
(HMC PEAKS): number of spectral peaks, out of the 8 loudest, that must be harmonics to confirm the sound is pitched
  Range: 1-8; default 5 (peaks)
(LOW PITCH): lowest frequency acceptable as pitch
  Range: 10-Nyquist/8 Hz; default 10 Hz (Nyquist/8 is 2756 Hz for 44.1KHz Sampling Rate; 6KHz for 96KHz SR)
(HIGH PITCH): highest frequency acceptable as pitch; should be > LOW PITCH
  Range: 10-Nyquist/8 Hz; default 10 Hz (Nyquist/8 is 2756 Hz for 44.1KHz Sampling Rate; 6KHz for 96KHz SR)
- - - - - - - -
(ERROR) GETPITCHBRK only: acceptable error in data reduction to breakpoint file
  Range: 0.1-3 semitones Full range: 0.00002 to 12 semitones; default 0.25 

OPTIONS
 Alternative pitch-finding algorithm
 (GETPICH only) Retain unpitched windows: interpolate between adjacent pitched windows (Default: not set) 


[440]  BrkToPch
BrkToPch (CDP: brktopi): convert breakpoint pitch to binary pitch file

BrkToPch converts a breakpoint pitch data file (.pch/.brk) to a binary pitch data file (.frq). 
As only binary pitch data can be converted into sound, this function provides the necessary conversion to the binary format.

PARAMETERS: none

NOTES:
This function is the opposite of PchToBrk (CDP: repitch pchtotext) and, less directly PtoBrk (CDP: ptobrk). 

[451]  PchInfo
PChInfo (CDP: pchinfo info)

Displays information about a binary pitch file (.frq), for example:
  MAX PITCH : 471.91HZ	  MIDI : 70.21	  TIME 4.34
  MIN PITCH : 442.74HZ	  MIDI : 69.11	  TIME 4.35
  MEAN PITCH: 467.33HZ	  MIDI : 70.04
  TOTAL RANGE: 1.10 SEMITONES

PARAMTERS: none

[452]  PchZeros	
PchZeros (CDP: pchinfo zeros)

Displays information about the presence of unpitched windows in a binary pitch file (.frq), for example:
  File contains unpitched windows.

PARAMETERS: none

[453]  PchSee
PchSee (CDP: pchinfo see)

Displays binary pitch file (.frq) as a pseudo-soundfile. Soundshaper saves this to a temp. file ~[filename]vu.wav and diaplys it in VIEWSF.
Do not attempt to play this file!  Uncheck the SPARE FILE checkbox after use.

In many ways it is an un-necessary function, as the binary file can be converted to breakpoint and viewed in Graph-Edit (and you can do something with it, too).

PARAMETERS: none

[454]   PchHear: Audition pitch contour (pitchfile --> analysis file)
PchHear (CDP: pitchinfo hear): audition pitch contour

PchHear converts a pitch file (.frq) to a frequency analysis file (.ana), for the purposes of hearing the extracted pitch. Note that GetPitch also produces such a file, which may be available in the TEMP.OUTFILES folder to import as a new source (e.g. ~A_1.frq has a matching file called ~A_1pch.ana).

PARAMETERS: none

[455] PchToBrk 
PchToBrk (CDP: pchinfo convert): convert binary pitch file (.frq) to breakpoint pitch file (.brk)

NOT IN USE - this is a legacy function. Use PCHTOBRK (outline) or PtoBrk (detailed) instead.


************************   RELEASE 8 SPECTRAL  **************
[460] Spectune R8
SPECTUNE (CDP Rel. 8 - PROVISIONAL): find most prominent pitch and transpose file to it

SpecTune does not tune the partials, as the name suggests - that is done by TUNE. Instead it finds the most prominent pitch in the spectral file and transposes the whole input to this pitch. Modes 2-4 require a datafile list of MIDI pitches, which you might restrict to suit the required mode. You can also optionally set limits for low and high MIDI pitch, plus start and end times for the effect. Other optional parameters are probably best left at their default values.  

Testing the process with a steady pitched note (orchestral horn), Mode 1 didn't really change it, Mode 2 transposed it down a tone, Mode 3 up a tone and Mode 4 produced an interesing harmonic mixture, based presumably on the MIDI pitches and their harmonics.

MODES
1 Transpose to nearest tempered pitch
2 Transpose to nearest listed pitch in tuning file 
3 Transpose to nearest listed pitch or octave equivalent 
4 Transpose to pedal pitch and its harmonics

PARAMETERS
TUNING: datafile - list of MIDI pitches (possibly fractional)
  Range: 4 to <127 (127 produced a CDP Error)
PEAKCOUNT (Mode 4): how many spectral peaks to tune
  Range: 1 to 128 (Soundshaper default: 5)
(PARTIALS): Number of harmonics to match to affirm pitch
  Range: 1 to 8 (default 5) 
(LOWPITCH) (Modes 1-3): lowest MIDI pitch to accept 
  Range: 4 to 127
(HIPITCH) (Modes 1-3): highest MIDI pitch to accept 
  Range: 4 to 127
(START TIME) (Modes 1-3): optional - time for the effect to start
  Range: 0 to file-length, < end time
(END TIME) (Modes 1-3): optional - time for the effect to end
  Range: 0 to file-length; > start time
(INTUNE): how closely tuned must harmonics be (Range: 0 to 6 semitones Default 1).
  Range: 
(WINDOWS) (Modes 1-3): minimum no. of consecutive (time-) windows needed to confirm pitch
  Range: 1 to no. of windows in file; default 2
(NOISE) (Modes 1-3): signal to noise ratio: windows > NOISE dB below the loudest window are ignored
  Range: 0 to 96dB (default: 80dB) 

NOTE
This is not exactly an auto-tune program, tempering pitch throughout the sound - as it transposes to a single pitch. The most useful results could well come from Mode 4, in creating a possibly interesting mixture of harmonics.

[461]  Timestretch:
TIMESTRETCH (CDP: stretch time and spectstr  - Rel8):  variable timestretch (preserving pitch) 

Timestretch stretches or shrinks the sound over time, without changing frequency. It creates extra time-windows to expand the overall time-base of the sound, without a change of frequency. The stretching itself can be time-varying. If the stretch factor TSTRETCH is <1, a time-shrinking occurs.

The Release 8 version SPECTSTR is identical to the original timestretch (CDP: STRETCH TIME) in respect of time-stretching, but adds the DISCOHERE and RANDOMISE parameters. It is not clear yet what is meant by "discohere" in the context of time-stretching.  
 
MODES
 1. Timestretch


PARAMETERS
TSTRETCH:  Stretch factor. If time-varying, the stretch itself varies between successive times.
  Range: 0.0001-1-10000 (<1 shrinks, >1 stretches).  T-V (times must increase, even if slightly).
Example of T-V file:
0.0    1.0        start with no timestretch to preserve original attack transients
0.199 1.0        still no timestretch; if e.g. 1.2 here, there would be an increasing stretch from 1 to 1.2 over the times 0 to 0.199"
0.2    2.0        timestretch of 2...
3.0    2.0        ...lasts until this time       
4.0    1.0        from 3" to 4", the stretch is reduced back to original state, which lasts until the end of the sound.

DISCOHERE: proportion of channels to discohere
  Range: 0 to 1
RANDOMISE: Frequency randomisation of discohered channels
  Range: 0 to 1


NOTES
In the Phase Vocoder (PVOC), spectral analysis takes place at regular overlapping time-intervals (windows). Timestretching creates extra windows to expand the timebase, without changing the frequency. 
It's easily demonstrated that extra windows are created: count the number in the original (Menu: Info>Spectral>Windows; CDP: specinfo windowct) and those in a 10 times stretch: there are 10 times as many. (Presumably amplitude values are interpolated between successive windows of the original file.)

The ability to preserve the original attack by using a time-varying TSTRETCH is often important. Be careful to have two successive lines of the same value if you want a static stretch factor over that time (see e.g. lines 3 and 4 in above example).

For slowing down or transposing a sound, a combination of SPEED and TIMESTRETCH is useful.
Slowing to half-speed:
Source >Speed x 2>Timestretch x 0.5 >Speed x 0.5
is a good alternative to:
Source >Transpose x 2 > Speed x 0.5

For octave transposition upwards:
Source >Speed x 2>Timestretch x 2
is a good alternative to:
Source >Transpose x 2

TIMESTRETCH might also be combined with GLIDE: both can provide an output of 'any' desired length, and the timestretched file can provide an evolving spectral envelope for GLIDE's output, using CROSS, VOCODE or PUTFMTS. Soundshaper's PCHSTRETCH is a composite of time-stretch + Speed to transpose pitch.

[4611] PCHSTRETCH
PCHSTRETCH is a Soundshaper composite of TIMESTRETCH and SPEED to transpose sound. 
Time stretching or shrinking alters the time-base (rhythm) of the sound by a given proportion, while SPEED likewise transposes it, also slowing it down or speeding it up by the same propoertion, which transposes the pitch and maintains approximately the original time. 

CAUTION! Times do NOT synchronise exactly with the original sound. (To test this, transpose a sound up an octave using PCHSTRETCH and mix it with the original.)
The reason for this lies within the time-stretching process.

The same parameter RATIO is used for both processes (Stretch and Speed). This is time-variable and does seem to preserve a steady transposition during pitch-bends (glissandi).  

In theory, the TRANSPOSE and TRANSPCH processes (in the same process group) do much the same thing, but PCHSTRETCH seems to offer a cleaner transposition for certain sounds, provided timing is not an issue.

PARAMETER
RATIO: transposition by ratio, e.g. 2 = 8ve up and 0.5 is 8ve down
  Range: 0.00383 to 256 (T-V)

NOTE
The Pitch Calculator utility (Tools Menu) can be used to find frequencies corresponding to the required musical interval; divide one by the other to get the transpostion ratio (>1 to transpose up, <1 to go down). 

[462] Specenv R8
SPECENV (CDP Rel. 8) - PROVISIONAL

Specenv extracts the spectral envelope of Infile 2 and applies it to Infile 1. Infile 1 must normally be shorter than Infile 2 (which is counter-intuitive and not normal CDP practice).

The process is equivalent to formant extraction plus formant impose/replace, but allows for larger spectral windows. It is a variant of VOCODE or CROSS, although the output is different from both. 

The default is to replace Infile1's spectral envelope, as CROSS does, though the result is not as clear as CROSS. Alternatively, Infile 2's spectral envelope may be imposed, like VOCODE. BALANCE controls the proportion of either input in the output.

The ouput length is taken from the shorter Infile 1, rather than the imposing/replacing one (Infile 2). Before applying the process, some silence may need to be added to Infile 1 and/or 2 to ensure the whole of the active material in the imposing/replacing file is used.


PARAMETERS
WINDOW SIZE: Bandwidth (no. of analysis channels) to process
  Range: 1 to no-of-chans 

BALANCE: proportion of original files in output.
     bal > 1 : balance of shaped-file to infile1 = (1-bal)
               Higher balance keeps more of the original Infile1 ('dry')
     bal < 1 : balance of shaped-file to infile2 = (1+bal)
               Lower balance keeps more of the imposed Infile2 ('wet')
     default 0.0: none of the original files is kept in the output.

OPTIONS
 Octave windows: Window-size counted in octave steps; default is channel-widths
 Impose envelope: Impose spectral envelope of File 2; default: File 2's spectral env. replaces that of File 1
 Keep loudness contour of imposed file; default: keep that of original file 

NOTE: See also CROSS, VOCODE, PUTFMTS. (Cross is easier to use for much the same result.)


[463] SPECFOLD R8
SPECFOLD (CDP Rel. 8) - PROVISIONAL

SPECFOLD is an alternative to the original CDP processes FOLD and INVERT spectrum, offering also a randomising of spectral frequencies.
The folding process (Mode 1) is as follows:
 Channels in the fold group are split into 2 equal sets of consective channels. 
 Values in the first set are moved from channel N to channel 2N
 Values in the 2nd set are assigned to remaining channels, in descending order.
 FOLDS sets the number of fold groups to fit into the frequency range defined by LOWCHAN and NOCHANS.

Mode 2 inverts the spectrum, putting high frequency channels into low ones and vice versa. Mode 3 randomly permutates the channels within the channel range.

Overall, the channel settings tend to brighten the sound considerably, above the lowest channel (set this higher to preserve the bass).

MODES
1: Fold spectrum.
2: Invert spectrum.
3: Randomise spectrum.

LOWCHAN: Lowest spectrum channel to process
NOCHANS: Number of spectral channels to process (>=4). For Folding (Mode 1) this must be an even number.
FOLDS: (Mode 1) Number of folds (less then NOCHANS)
SEED: (Mode 3) Seed value sets a specific random permutation of channels.

OPTION
 Process the amplitudes only. Not set: processes amps and freqs.



[4631] FOLDINVERT (merger of FOLD and INVERTSPEC)  
FOLDINVERT - fold or invert the spectrum. (This is a merger of FOLD and INVERTSPEC on to one parameter page.)

Mode 1 FOLD (CDP: focus fold) octave-transposes frequencies into the specified range. 
Components lower than low freq are transposed up until they lie within the range, while those higher than high freq are likewise transposed down.  If transposed information competes for the same (output) channel, the component with the highest amplitude is retained. Because the transpositions are by octave, the resultant sounds are normally timbral variants of the original.

Mode 2 INVERT (CDP: specnu slice 5) inverts partials around a given frequency: if they were originally above the frequency, they appear an equivalent amount below it, and vice versa. 

PARAMETERS
LOW FREQ (mode 1):  Lowest frequency of range: lower frequencies are 8ve-transposed up.
  Range: 5-22050 Hz. T-V
HIGH FREQ (mode 1: Highest frequency of range: higher frequencies are 8ve-transposed down.
  Range: 5-22050 Hz. T-V 
INVERT (mode 2: Frequency (f) around which to invert the spectrum.
It is assumed that frequencies originally below this (f-n) are placed the same amount above it (f+n), while those originally above it (f+n) are placed the same amount below (f-n). 
  Range:  1 chan. bandwidth (c.44Hz) - c.20000 Hz.

OPTION (for FOLD)
 Fuller spectrum - uses a different algorithm

NOTES
FOLD:
Try experimenting first with a steady-pitched note. If the fundamental and perhaps a couple of the lower harmonics are transposed up into a band originally occupied by higher harmonics, the resultant sound will proabably retain the original fundamental pitch (caused by the difference tones created among the newly placed partials), but with an altered timbre.  With inharmonic tones that do not have a clear fundamental, a FOLD upwards in pitch will still create a sound closely related to the original and not unlike a high-pass filtering.

Time-varying low freq and/or high freq with frequency bands of relatively narrow pitch can give an effect like ARPEGGIATE, picking out different (groups of) frequency components in turn.

INVERT:
Inverting the spectrum will turn high frequencies (such as high harmonics) into low ones and vice versa. You can also expect a harmonic sound to become inharmonic. If a high invert-frequency figure is given, the lowest of the original frequencies may well disappear, being beyond the Nyquist frequency (and our hearing). Equally, if a very low figure is given, high frequency data is inverted too low to be heard (or to be resolved within the channel bandwidth). Soundshaper's data range is therefore more than generous for most purposes, despite being less than the full legal CDP range.

As the resultant sound is often a bit "thin", it's worth carrying out a few inversions at different frequencies (e.g. 1k, 2k and 4k) and mixing the result.
The process can also be an effective way of disguising a vocal sound, while retaining its rhythm.


[464] SuppressBnd - PROVISIONAL
SUPPRESSBND  (CDP: suppress partials Rel. 8 - PROVISIONAL)

SUPPRESS BAND suppresses the most prominent partials in a specified frequency band, at given times. LOWFREQ and HIGHFREQ set the lower and upper limits of the frequency band, while SPECHANS gives the number of spectral channels in that band that you wish to suppress. TIMESLOTS is a datafile giving the times that these are to be suppressed. For the whole file, enter 0 and its approx. end time.

Soundshaper's LOW and HIGH frequency limits may be exceeded; however, suppressing the normally weaker upper partials will make very little difference to the sound. The greatest timbral change is through selective high-pass filtering, that is, in eliminating some of the lower partials, under 1000Hz.

Care must be taken in setting the number of channels (SPECCHANS) correctly to avoid a CDP Error. Soundshaper has a built-in error-trap, which divides the frequency band by the channel bandwidth (for the PVOC resolution in use) to give the number of channels in the band; however, the true maximum is usually slightly less than this. 

PARAMETERS
TIMESLOTS: datafile of from-to times to suppress the partials
  Range: 0 to infile-length (secs)
LOW FREQ: lower limit of frequency band in which partials are to be suppressed
  Range: 5 to 22050 Hz
HIGH FREQ: upper limit of frequency band in which partials are to be suppressed
  Range: 5 to 22050 Hz  (> LOW FREQ)
SPECCHANS: number of channels to suppress within frequency band
  Range: 1 to < number of chans in the band (t.b.c)

NOTE
Although the otiginal SUPPRESS process has a time-varying nuumber of channels, it is not band-specific, but just picks out the most prominent channels in each tim-window and suppresses them. This process can be time-varied via the TIMESLOTS parameter, though the band itself and the number of channels to suppress cannot be changed over time. 

[465] Caltrain R8
CALTRAIN (CDP Rel. 8) - PROVISIONAL

CALTRAIN appears to be a variant of BLUR, affecting partials above a given frequency.

PARAMETERS
BLUR: Time over which to blur the output
  Range: 0 to file-length
ABOVE: Frequency above which the output is blurred  
  Range: 0 to 22050 Hz (Soundshaper: 20-20k Hz) Must be higher than LOWCUT if that is set. 
(LOWCUT): Optionally set a frquency below which the bass is cut off
  Range: 0 to 22050 Hz (Soundshaper: 20-20k Hz) Must be lower than ABOVE. 

[466] SpecFract - PROVISIONAL
SPECFRACT (CDP: fractal spectrum - Rel.8 - PROVISIONAL)

SpecFract is a spectral version of FRACTALWAVE, distorting the sound fractally by transposition. The breakpoint file SHAPE defines a transposition contour; transposition happens over the total duration of this and is then repeated over every resulting sub-unit of the pattern, over every sub-sub-unit, etc. until the smallest time-unit is reached. The musical effect is often a kind of pitch wobble and, for some sources, the effect may be rather subtle. 

The other parameters are optional. MAXFRAC sets the degree of fractalisation, which otherwise proceeds until the minimum possible wavelength is reached. STRETCH time-stretches the fractal pattern, but not the sound. WARP distorts the intervals defined in the SHAPE pattern.

PARAMETERS
SHAPE:  breakpoint textfile of time-transposition pairs, defining the pitch-time contour of the (largest) fractal shape.
        Times must start at zero and increase, with the final time indicating the duration of the pattern. (The value at the final time is ignored).
   Range -12 to 12 semitones
(MAXFRAC): maximum degree of fractalisation.
   Range: 0 to 1000  (T-V). If 0, fractalisation is down to the min. possible wavelength. 
(STRETCH): time stretches the fractal pattern    
   Range: 0 (no stretching) or >=1 (T-V)        
(WARP): interval warping of fractal pattern (Time-variable).
   Range: 0 (no warping) to 8  (T-V)

OPTIONS
 Shrink pitch-intervals as fractal time-scales shrink.
 Transposition only. Default: retain formant envelope.

NOTE:
The process may best be understood by experimenting with a steady-pitched source and selecting the tranposition-only flag (<b>-n</b>). A burst of tones is produced at high speed, as defined by the <i>shape</i> datafile. This is not unlike the sister process FRACTAL WAVE (but faster). If the (<b>-n</b>) flag is then unset, the source's formant envelope is retained. With a speech source, the voice retains its overall integrity, but with pitch fluctations caused by the fractal transpositions.


[467] SpecFmt - PROVISIONAL
SPECFMT (CDP: sepcfnu 1-6) - Rel. 8. PROVISIONAL

SPECFMT modifies the spectral shape under formant peaks. It incorporates the first six modes of a comprehensive suite of 23 formant-shaping processes called SPECFNU in CDP. Many of the modes have parallels in other (previous) processes, but here they are preserving the formant peaks. 

 Narrow: steepen the skirts of the formant peaks (c.f. EXAGGERATE in Formants menu). Narrowing the formants focuses on the spectral peaks and therefore acts like an increasingly tight filter.
 Squeeze the spectrum around a specified formant - radically changes the timbre, but further clarity needed on how it does this (see Notes).
  (c.f. Squueze in spectral Pitch/Freq menu)
 Invert formants: swaps spectral peaks and troughs, so that the peaks become troughs and vice versa. This creates a heavily distorted sound. There is an option to vibrate between original and inverted states.
 Rotate formants - In this mode, the formants move up (or down) in frequency, reappearing at the foot (or top) on reaching formants' edge. The result is a rather wobbly sound.
 Spectral negative -  inverts the spectral values for each channel, usually producing a highly distorted output. It appears to flip the spectral envelope in some way (still to be clarified). It often generates an error message: "suppress non-harmonics with suppress-harmonics will produce zero signal level". To avoid this, do not apply Gain.
 Suppress formants -  suppresses the selected formant(s), which is a selective type of filtering. Enter the formants to be suppressed in the edit box (e.g. 13 for formants 1 and 3)  Unless formant 1 is suppressed, there may be very little noticeable difference.

MODES
1. Narrow formants
2. Squeeze around formant
3. Invert formants
4. Rotate formants
5. Spectral negative
6. Suppress formants

PARAMETERS
NARROW (Mode 1) degree of narrowing
  Range: 1 to 1000 (T-V)
SQUEEZE (Mode 2) factor
  Rnage 1 to 10 (T-V)
CENTRE (Mode 2) - formant at the centre of the squeeze
  Range: 1 to 4
VIBRATE (Mode 3 Invert) - optional speed of switching between origianl and inverted states
  Range: 0 to 300 Hz (T-V)
ROTATE (Mode 4): speed of rotation
  Range: -300 to 300 Hz (T-V) (neg. rotation is anticlockwise?)
SUPPRESS (Mode 6): enter formants to suppress; 
  Range: 1 to 4, entered as number with NO SPACES -- e.g. 12 for formants 1 and 2; 123 for 1-3
(GAIN): overall output gain or attentuation
  Range: 0.01 to 10 (<1 attenuates, >1 boosts level)

OPTIONS
 Zero top: filter out top of spectrum (above 4th formant) - may reduce some distortion
 Force fundamental: force lowest formant to use fundamental frequency as peak.
  NOT RECOMMENDED WITH NEXT OPTION -- see NOTE
 Use short time-window to extract spectral envelope (default long window)
 Exclude non-harmonic partials (NOT WITH NEXT OPTION!)
OR
 Exclude harmonic partials
 Replace very quiet or unpitched partials with silence

NOTES:
Spectral window-size: If the "force fundamental" option is used, selecting a large window will find the fundamental, whereas a short window may not. 

Squeeze was tested with various pitched/semi-pitched sounds. Much of the pitch was lost (African drums, handbell, horn); the violin became a kind of Jews'-harp. The choice of formant made no noticeable difference. The effect might be useful for creating drum variants.

[4672] FmtMove - PROVISIONAL
FMTMOVE (CDP: specfnu 8, 9) - PROVISIONAL

FmtMove moves the most prominent formants BY the given frequencies (Mode 1) or TO the given frequencies (Mode 2). Each of the four most prominent spectral peaks (formamts) can be moved individually. Note that formants moving below zero or above nyquist/2 will disappear. Zero values are accepable in Mode 1 (no movement); in Mode 2, negative values are not approriate: the minumum value is 10Hz. 

There is also an overall GAIN control.

MODES
1. By given frequencies
2. To given frequencies

PARAMETERS
FREQ1,2,3,4: Move the formants BY this frequency amount (Mode 1) or TO this frequency (Mode 2)
             Formants moving below zero or above nyquist/2 will disappear.
  Range Mode 1 (Move BY): -8KHz to +8KHz (T-V); value 0 = no change
  Range Mode 2 (Move TO): 10Hz to 8KHz (T-V)
(GAIN): overall output gain or attentuation
  Range: 0.01 to 10 (<1 attenuates, >1 boosts level)

OPTIONS
 Zero top: filter out top of spectrum (above 4th formant) - may reduce some distortion
 Use short time-window to extract spectral envelope (default long window)
 Exclude non-harmonic partials (NOT WITH NEXT OPTION!)
OR
 Exclude harmonic partials
 Replace very quiet or unpitched partials with silence

[4673] FmtArpegg R8
FMTARPEGG (CDP: specfnu 10) - PROVISIONAL: Arpeggiate partials under formants (CDP8)

FMTARPEGG aims to arpeggiate partials up or down while retaining original formants, creating a sweeping-filter effect (Use TIMESTRETCH to slow this down and hear the process in detail.)

The arpeggiation here is NOT like that of HILTE ARPEG, which causes a waveform at a specified frequency to sweep through the spectrum of a sound, emphasizing individual partials in turn. 

NB: On some PCs (e.g., Windows 7) this operation may give a silent output. This is currently under investigation.


PARAMETERS
ARPRATE: Frequency of arpeggiation 
  Range: -50 to +50 Hz.  (negative value begins with downwards sweep)
(GAIN): Level of output (<1 attenuates)
  Range: 0.01 to +10.00 

OPTIONS
 Use short time-window  to extract spectral envelope (default: large window).
 Exclude non-harmonic partials (NOT WITH FOLLOWING OPTION!)
 Silence unpitched: replace extremely quiet or unpitched windows by silence (NOT WITH PRECEDING OPTION!)
 Arpeggiate downwards only; default is UP only (NOT WITH FOLLOWING OPTION!)
 Arpeggiate UP and DOWN; default is UP only (NOT WITH PRECEDING OPTION!)


[4674] FmtFreq
FMTFREQ (CDP: specfnu 13,14 & 19)  - Rel.8 PROVISIONAL

FMTFREQ shifts or re-spaces partials "under formants", i.e. preserving the original spectral envelope. The preservation of formants is perhaps most useful when processing vocal sounds to create unusual variants.

A linear shift of frequency (Mode 1) turns harmonic sounds into inharmonic ones: an upshift squeezes the intervals between the partials which a downshift stretches them. Re-spacing (Mode 2) sets the RESPACE FREQ as the new fundamental and re-sets the partials in relation to this (whether 8ve shifts or harmonics is not clear yet). Mode 3 shifts frequencies randomly. There is also an optional arpeggiation. LowFreq and HighFreq set frequency limits within which the shifts can take place.

MODES
1. Frequency shift
2. Re-space partials
3. Random shift

PARAMETERS
SHIFT FREQ (Mode 1): amount of linear shift, adding or subtracting this value to all partials 
  Range: -1000 to +1000 Hz  (T-V)
RESPACE FREQ (Mode 2): new frequency spacing of partials; freq. value becomes new fundamental
  Range 1 to 1000 Hz (T-V)
RAND (Mode 3): degree of random cscattering of frequencies
  Range 0 to 1 (T-V)
(GAIN)L Output gain or attenuation 
  Range: 0.01 to 10 (<1 attenuates, >1 boosts level
(ARPRATE): Rate of optional arpeggiation
  Range: -50 to +50 Hz
LOWFREQ: filter out all requencies lower than this
  Range: 0 to 10KHz
HIGHFREQ: filter out all frequencies higher than this
  Range: 0 to 10KHz (>LOWFREQ)

OPTIONS
 Use short time-window to extract spectral envelope (default long window)
 Exclude non-harmonic partials
 Replace very quiet or unpitched windows with silence
 Arpeggiate downwards (if ARPRATE set) - default is UP
OR
 Arpeggiate up and down
 Fill spectrum top: if shifting downwards, fill top frequencies with extra harmonics

NOTE
This process is grouped in Soundshaper with the original frequency shifter, which doesn't preserve formants. Shared parameter values are automatically transferred when switching from one process to the other.

[4675] InvertPch R8
INVERTPCH (CDP: specfnu 15) - Rel.8 PROVISIONAL

INVERTPCH inverts the pitch contour around a given pitch (ABOUT), while preserving the original formants.  The choice is between mirror inversion, or using a mapping text file (in semitones) of intervals and their inversions. You can map intervals however you wish, including fractional (microtonal) MIDI values. You can optionally restrict the inversion pitch range with LOWPCH and HIGHPCH and filter out frequencies below LOWCUT or above HIGHCUT, as required. 

There is also an arpeggiation option, triggered by the optional ARPATE, with options to arpeggiate downwards and/or upwards instead of up.

PARAMETERS
MAP: 0 if no mapping is required (mirror inversion) 
     OR a text file of paired values showing how intervals are to be mapped onto their inversions. 
     Datafile of: 
	Interval 1  Inversion 1 
	Interval 2  Inversion 2
	etc. 
      Range: -96 to 96 semitones (fractions allowed)
ABOUT: pitch around which the pitch line is to be inverted or mapped
  Range: 4 to 127 (MIDI, possibly fractional, where 60 = Mid C), T-V
(GAIN): Output gain or attentuation
  Range: 0.01 to 10 (<1 lowers level, >1 raises it)
(ARPRATE): Optional arpeggiation rate
  Range: -50 to +50 Hz
(LOWCUT): filter out all frequencies lower than this
  Range: 0 to 10KHz
(HIGHCUT): filter out all frequencies higher than this
  Range: 50 to 10KHz and >LOWFREQ
(LOW PITCH): minimum acceptable pitch (MIDI 1-127)
  Range: 1-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 0
(HIGH PITCH): maximum acceptable pitch (MIDI 1-127)
  Range: 1-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 127

OPTIONS
 Use short time-window to extract spectral envelope (Default: long one)
 Delete non-harmonic partials in the sound
OR
 Replace very quiet or unpitched partials with silence
 Arpeggiate downwards (if ARPRATE set) - default: upwards
OR
 Arpeggiate up and down (if ARPRATE set)

NOTE
INVERTPCH is grouped with an alternative CDP process PCHINVERT, based on the original function which is also available in the Pitch Data menu. In the latter version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.


[4676] ExaggPch - PROVISIONAL
EXAGGPCH (CDP: specfnu 16) - PROVISIONAL

EXAGGPCH exaggerates or smoothes the pitch contour, retaining the original formants. It measures the interval from a given pitch (ABOUT) to the actual pitch and then applies  a multiplier (RANGE) to the interval, exaggerating or smoothing it. If no ABOUT pitch is given (enter 0), the mean pitch of the input is used instead. 

You can optionally restrict the pitch range with LOWPCH and HIGHPCH and filter out frequencies below LOWCUT or above HIGHCUT, as required.  There is also an arpeggiation option, triggered by the optional ARPATE, with options to arpeggiate downwards and/or upwards instead of up.


PARAMETERS
ABOUT: Pitch around which to exaggerate or smooth pitch line (T-V)
  Range: 0 or 4-127 (MIDI pitch, where 60=Mid C; fractions allowed)
  If 0 is entered, the mean pitch of the input is used.
RANGE: multiplier expanding or contracting the pitch range in semitones (T-V)
  Range: 0 to 1  [does 0.5 neither expand or contract?]
(GAIN): Output gain or attentuation
  Range: 0.01 to 10 (<1 lowers level, >1 raises it)
(ARPRATE): Optional arpeggiation rate
  Range: -50 to +50 Hz
(LOWCUT): filter out all frequencies lower than this
  Range: 0 to 10KHz
(HIGHCUT): filter out all frequencies higher than this
  Range: 50 to 10KHz and >LOWFREQ
(LOW PITCH): minimum acceptable pitch (MIDI 1-127)
  Range: 1-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 0
(HIGH PITCH): maximum acceptable pitch (MIDI 1-127)
  Range: 1-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 127

OPTIONS
 Tie to pitch top
 Tie to pitch low
 Also tie to pitch middle (only if above 2 options set)
 Do range change above mean only
 Do range change below mean only
 Use short time-window to extract spectral envelope (Default: long one)
 Delete non-harmonic partials in the sound
OR
 Replace very quiet or unpitched partials with silence
 Arpeggiate downwards (if ARPRATE set) - default: upwards
OR
 Arpeggiate up and down (if ARPRATE set)


NOTE
EXAGGPCH is grouped with an alternative CDP process PCHEXAGG, based on the original function which is also available in the Pitch Data menu. In the latter version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.

[4677] QuantPch - PROVISIONAL  
QUANTPCH (CDP: specfnu 17) - PROVISIONAL

QUANTPCH quantizes the pitch content in a sound while preserving the original formants. The actual pitches are forced onto the nearest listed pitch value. The process needs a text file of data about pitches to quantize to. 

The format of the pitch data file is much more flexible than that of the earler process PCHQUANT (CDP: repitch quantise). There are five possible types, each identified by a different initial test marker:
1. a list of pitches; 2. a list of pitches to be duplicated in all 8ves; 3. a time-changing list of pitches; 4. an equal-tempered scale dividing the octave, plus a pitch to tune the scale to; e) as d) but using a pseudo-octave of any size.

You can optionally restrict the pitch range with LOWPCH and HIGHPCH and filter out frequencies below LOWCUT or above HIGHCUT, as required. There is also an arpeggiation option, triggered by the optional ARPATE, with options to arpeggiate downwards and/or upwards instead of up.


PARAMETERS
QUANT: text datafile. Five possible types, each identified by an initial marker: 
        #HS:    followed by a list of MIDI pitches to quantise to. (HS=Harmonic Set)
        #HF:    followed by a list of MIDI pitches to quantise to, to be duplicated in all octaves (HF=Harmonic Field)
        #THF:   followed by lines each with time + list of MIDI pitches. (THF=Timed Harmonic Field) 
                  1st time must be zero & times must increase.
                  Each MIDI list must be the same length.
                  To change no. of pitches from line to line, duplicate values.
        #SCALE: followed by just TWO values.
              (a) the number of equal pitch divisions in an octave (e.g. 12).
              (b) MIDI pitch of any pitch to tune the scales to (possibly fractional, e.g. 69 for A 440)
        #ELACS: followed by just THREE values.
              (a) the size of a "pseudo-octave" in (possibly fractional) semitones.
              (b) the number of equal pitch divisions of the pseudo-octave.
              (c) the MIDI pitch of any pitch to tune the scales to.

(GAIN): Output gain or attentuation
  Range: 0.01 to 10 (<1 lowers level, >1 raises it)
(ARPRATE): Optional arpeggiation rate
  Range: -50 to +50 Hz
(LOWCUT): filter out all frequencies lower than this
  Range: 0 to 10KHz
(HIGHCUT): filter out all frequencies higher than this
  Range: 50 to 10KHz and >LOWFREQ
(LOW PITCH): minimum acceptable pitch (MIDI 1-127)
  Range: 1-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 0
(HIGH PITCH): maximum acceptable pitch (MIDI 1-127)
  Range: 1-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 127

OPTIONS
 Use short time-window to extract spectral envelope (Default: long one)
 Delete non-harmonic partials in the sound
OR
 Replace very quiet or unpitched partials with silence
 Arpeggiate downwards (if ARPRATE set) - default: upwards
OR
 Arpeggiate up and down (if ARPRATE set)
 No snoothing


NOTE
QUANTPCH is grouped with an alternative CDP process PCHQUANT, based on the original function which is also available in the Pitch Data menu. In the latter version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.

[4678] RandPch - PROVISIONAL
RANDPCH (CDP: specfnu 18) - PROVISIONAL

RANDPCH randomizes the pitch content of the sound, while preserving the original formants, and optionally quantizes it first.  If no quantization is required, QUANT should have the value 0. Otherwise, it is a text data file matching that of the process QUANTPCH (CDP: specfnu 17). 

There are five possible types of quantization, each identified by a different initial text marker: 
1. a list of pitches; 2. a list of pitches to be duplicated in all 8ves; 3. a time-changing list of pitches; 4. an equal-tempered scale dividing the octave, plus a pitch to tune the scale to; e) as d) but using a pseudo-octave of any size.

You can optionally restrict the pitch range with LOWPCH and HIGHPCH and filter out frequencies below LOWCUT or above HIGHCUT, as required.  There is also an arpeggiation option, triggered by the optional ARPATE, with options to arpeggiate downwards and/or upwards instead of up.

PARAMETERS
QUANT: 0 - no quantization, or text datafile, as follows.
 
        Five possible types of quantization, each identified by an initial marker: 
        #HS:    followed by a list of MIDI pitches to quantise to. (HS=Harmonic Set)
        #HF:    followed by a list of MIDI pitches to quantise to, to be duplicated in all octaves (HF=Harmonic Field)
        #THF:   followed by lines each with time + list of MIDI pitches. (THF=Timed Harmonic Field) 
                  1st time must be zero & times must increase.
                  Each MIDI list must be the same length.
                  To change no. of pitches from line to line, duplicate values.
        #SCALE: followed by just TWO values.
              (a) the number of equal pitch divisions in an octave (e.g. 12).
              (b) MIDI pitch of any pitch to tune the scales to (possibly fractional, e.g. 69 for A 440)
        #ELACS: followed by just THREE values.
              (a) the size of a "pseudo-octave" in (possibly fractional) semitones.
              (b) the number of equal pitch divisions of the pseudo-octave.
              (c) the MIDI pitch of any pitch to tune the scales to.

RANGE:  semitone range within which random offsets are generated. 
  Range: 0 to 96 (semitones)
SLEW: relationship between possible upward & downward random variation.
        e.g. 2: uprange = 2 x downrange;  0.5: uprange = 0.5 x downrange.
  Range: 0.1 to 10. (Value 1 has no effect)
(GAIN): Output gain or attentuation
  Range: 0.01 to 10 (<1 lowers level, >1 raises it)
(ARPRATE): Optional arpeggiation rate
  Range: -50 to +50 Hz
(LOWCUT): filter out all frequencies lower than this
  Range: 0 to 10KHz
(HIGHCUT): filter out all frequencies higher than this
  Range: 50 to 10KHz and >LOWFREQ
(LOW PITCH): minimum acceptable pitch (MIDI 1-127)
  Range: 1-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 0
(HIGH PITCH): maximum acceptable pitch (MIDI 1-127)
  Range: 1-127 (MIDI pitch, where 60 = Mid C); fractions allowed. Default 127

OPTIONS
 Use short time-window to extract spectral envelope (Default: long one)
 Delete non-harmonic partials in the sound
OR
 Replace very quiet or unpitched partials with silence
 Arpeggiate downwards (if ARPRATE set) - default: upwards
OR
 Arpeggiate up and down (if ARPRATE set)
 No snoothing
 Open up FAST MOVEMENT in the quantised pitch-line.
 No smoothing of transitions between pitches.
 No formant reshaping. 

NOTE
RANDPCH is grouped with an alternative CDP process PCHRAND, based on the original function which is also available in the Pitch Data menu. In the latter version you can choose the values for extracting pitch and formants, and you could re-synthesize using a formant file from another sound. You can also choose a transposition file as the output.


[468] SineSpeech (R8 - Provisional)
SINESPEECH (CDP: specfnu 23) - Rel.8 PROVISIONAL

SINE SPEECH converts formant frequencies into sine tones. A single sine wave represents each of four formants. The pitches are optionally quantized to a template textfile (QUANT).  There is an overall optional gain control as well as optional gain or attentuation of each formant. Some gain is generally recommended, as the process is a kind of thinning, not unlike the TRACE process.

PARAMETERS
QUANT: 0 - no quantization, or text datafile, as follows:
 
        Five possible types of quantization, each identified by an initial marker: 
        #HS:    followed by a list of MIDI pitches to quantise to. (HS=Harmonic Set)
        #HF:    followed by a list of MIDI pitches to quantise to, to be duplicated in all octaves (HF=Harmonic Field)
        #THF:   followed by lines each with time + list of MIDI pitches. (THF=Timed Harmonic Field) 
                  1st time must be zero & times must increase.
                  Each MIDI list must be the same length.
                  To change no. of pitches from line to line, duplicate values.
        #SCALE: followed by just TWO values.
              (a) the number of equal pitch divisions in an octave (e.g. 12).
              (b) MIDI pitch of any pitch to tune the scales to (possibly fractional, e.g. 69 for A 440)
        #ELACS: followed by just THREE values.
              (a) the size of a "pseudo-octave" in (possibly fractional) semitones.
              (b) the number of equal pitch divisions of the pseudo-octave.
              (c) the MIDI pitch of any pitch to tune the scales to.
SINING: degree of sinusoid conversion
  Range: 0 to 1
(GAIN): Output gain or attentuation
  Range: 0.01 to 10 (<1 lowers level, >1 raises it)
(AMP1,2,3,4): relative gain or attenuation of formant 1,2,3 or 4 
  Range: 0.01 to 10
(QDEPTH1,2,3,4): quantization depth -- how strongly to force pitches' formant 1,2,3 or 4 to the QUANT template.
                 NOT APPLCABLE IF QUANT=0 (no quantization) 
  Range: 0-1 

OPTIONS
 Use short time-window to extract spectral envelope (Default: long one) 
  NOT RECOMMENDED WITH NEXT OPTION -- see NOTE
 Force fundamental: force lowest formant to use fundamental frequency as peak.
 Replace very quiet or unpitched partials with silence
 Smoothing: smooth between pitches in formant traces.


NOTE
Spectral window-size: If the "force fundamental" option is used, selecting a large window will find the fundamental, whereas a short window may not. 


[470] TRANSPOSE (revamped: for orig. see [62])
TRANSPOSE (CDP: repitch transpose) shifts pitch up or down while preserving the time-base (i.e. speed/rhythm). Several ways of entering the transposition are offered: by frequency ratio, octaves or semitones. There is also an option to filter out part of the spectrum.  In this process, the spectral envelope is shifted. 

MODES
 1   Freq.ratio: transpose by frequency ratio
 2   Semitones: transpose by number of semitones
 3   Octaves: transpose by number of octaves

PARAMETERS
RATIO (Mode 1): Frequency ratio , e.g. 2=+8ve, 0.5=-8ve (T-V)
  Range: 0.00383 to 256 
TRANSPOSE (Mode 2: Number of (possibly fractional) semitones. (T-V) 
  Range: -96.0 to +96.0 semitones  
OCTAVES (Mode 3): Number of (possibly fractional) octaves. (T-V)
  Range: -8.0 to +8.0 octaves
(LOW FREQ):  filter out all frequencies lower than this.  (T-V)
  Range: 5-22050 Hz.
(HIGH FREQ): filter out all frequencies higher than this. (T-V)
  Range: 5-22050 Hz (and >LOW FREQ if both used)

OPTION
 Fuller spectrum:  a more detailed spectrum is used.

NOTES

Note that TRANSPOSE transposes the pitch and preserves time, but does not preserve the formants. (Formants are resonant frequencies, such as those heard in vowel sounds.)
That is, it shifts the formants as well as the pitch. For vocal sounds, this is not quite "right", because we cannot transpose the vocal cavities that produce the formants so evident in speech and singing. The process FMTTRANSP (CDP: specfnu 11/12) does preserve the original formants, and does so much better than the original process TRANSPOSEF, which has been deprecated in Soundshaper (though it's still available in the XTRA | Legacy menu, under Transpose).  

Two alternative methods are available in Soundshaper, within the same process group. TRANSPCH (CDP: pitch transp) also works spectrally to transpose all or part of the spectrum.  Also in the group is PCHSTRETCH, which time-shrinks/stretches the sound and then transposes it up or down by speed. All of these methods produce subtly different results, depending on the input sound. 

[4701] FMTTRANSP
FMTTRANSP (CDP Rel 8) - PROVISIONAL

FMTTRANSP (CDP: specfnu 11/12) transposes pitch, preserving time, but also preserves the original formants. The spectral envelope (including all resonances) is extracted from the original sound and applied to the transposed version.(Formants are resonant frequencies, such as those heard in vowel sounds.)  It is also possible to arpeggiate the spectrum while transposing: this radically alters the source.

MODES
1. Octave transposition
2. Semitone transposition

PARAMETERS
OCTSHIFT: Transposition in (possibly fractional) octaves  (Mode 1 only)
  Range: -4 to +4 8ves
TRANSPOSE: Transposition in semitones (Mode 2 only)
  Range: -48 to +48 semitones (possibly fractional)
(GAIN): Optional gain or attentuation
  Range: 0.01 to 10 (<1 lowers level, >1 raises it)
(ARPRATE): Optional arpeggiation rate
  Range: -50 to +50 Hz
LOWFREQ: Lower frequency limit for transposing and arpeggiation
  Range: 0 to 10KHz
HIGHFREQ: Upper frequency limit for transposing and arpeggiation
  Range: 0 to 10KHz  (>LOWFREQ)

OPTIONS
 Use short time-window to extract spectral envelope (Default: long one)
 Delete non-harmonic partials in the sound
OR
 Replace very quiet or unpitched partials with silence
 Arpeggiate downwards (if ARPRATE set) - default: upwards
OR
 Arpeggiate up and down (if ARPRATE set)
 Fill spectrum top: if transposing down, fill upper frequencies with extra harmonics.
 
 
NOTES
This is a much more successful program than the original CDP TRANSPOSEF. It is not clear how it has been improved. 

Note that there is an alternative program PCHSHIFT (CDP: repitch pitchshift / pitch octmove) in the program group.
This is a composite process, automatically extracting pitch (to .frq file) and formants (to .for file) and re-combining these after transposing.

[471] Speculate R8
SPECULATE (CDP Rel 8) - PROVISIONAL (MULTI-OUTS)

SPECULATE progressively swaps channel data, following a permutation sequence like Plain-Bob bell-ringing. It produces an output file for each swap, so these typically number several hundred files, unless the frequency range is restricted (see MINFREQ and MAXFREQ). The audio outputs start with the original sound and progressively become shriller (like successive high-pass filtering); once the sequence has passed the half-way point, this process is reversed and they become progressively more like the original.

In Soundshaper, the files are stored off the patchgrid, optionally in a folder of your choice. (See NOTE below for details.) Checking the option "Remove other components" may reduce the number of output files. Every ten files or so will sound a little different, but it's hard to know how to handle such a vast amount of timbral variation. 

PARAMETERS
MIN FREQ: lowest frequency used for channel-swapping
  Range: 5-10000 Hz
MAX FREQ: highest frequency used for channel-swapping 
  Range: 150-10000 Hz
  Max Freq must be at least 129.199 Hz more than Min Freq.

OPTION
 Remove any other components

NOTE
Soundshaper asks you to enter a "base name" for the outputs, at the top of the parameter page. (The default is "perm".) Outputs are called <base-name>_0, 1, 2, etc. The file extensions are natively .wav, but Soundshaper renames these to .ana, as they're not playable .wav files. You are recommended to choose a folder for the outputs, too: click the folder icon. If, however, you leave them in the TEMP folder, then you can call them ~<name> and they will be erased when the patch is cleared.


//-----------------------------------------

[521]  PchToRatio
PchToRatio (CDP: no equivalent): convert .pch to ratio (.brk)

PchToRatio is a Soundshaper function which converts a pitch breakpoint file (or any breakpoint file) to ratios of the initial pitch, to act as a pitch contour for transposition. (CDP's own transposition files (.trn) do not seem to view the data in this way.) The aim is that the varying pitch of one sound can be imposed on another sound, using TRANSPOSE or SPEED.

PARAMETERS: none

[6010] PanMix
PANMIX (CDP: no equivalent): Position/move two mono signals within stereo space and mix (*2 MONOs in, STEREO out)

PANMIX is a Soundshaper composite function, based on PAN. Two mono inputs are each placed in stereo space, then mixed together. Together with the PRESCALE parameter, the function simulates the position in a mixing desk where two channels representing a stereo input each have level and pan controls. Unfortunately, PRESCALE is not T-V, so the function may be modified in future to incorporate a true T-V level. Also, Soundshaper can already process a stereo input with separate parameter settings for each channel.

The key parameter is PAN, which can be time-varying. Pan position normally ranges from -1 (full left) to +1 (full right). However, higher or lower values are accepted, which are attenuated in level to simulate further distance from the listener.

PARAMETERS
PAN: Specify stereo position  (T-V*)
  Range: +/- 256: -1 left, 0 centre, 1 right; >1 or <-1 signal has lower level 
(PRESCALE): Gain factor adjusting input level 
  Range: 0.000031 to 2.0; default: 0.7, approx -3dB

NOTE
* To work properly with T-V datafiles, each input must have a separately named datafile, e.g. Pan1.brk and Pan2.brk





